2

我需要在 SQL Server 2005 下生成多个随机值,不知何故这根本行不通

with Random(Value) as
(
    select rand() Value
        union all
    select rand() from Random

)select top 10 * from Random

首选的解决方法是什么?

4

2 回答 2

3

你有没有尝试过这样的事情(在http://weblogs.sqlteam.com找到):

CREATE VIEW vRandNumber
AS
SELECT RAND() as RandNumber
GO

创建一个函数

CREATE FUNCTION RandNumber()
RETURNS float
AS
  BEGIN
     RETURN (SELECT RandNumber FROM vRandNumber)
  END
GO

然后你可以像往常一样在你的选择中调用它 Select dbo.RandNumber() , * from myTable

或从他们的评论中:

select RAND(CAST(NEWID() AS BINARY(6))), * from myTable
于 2008-10-08T14:50:59.400 回答
0

我目前正在使用这个:

with Random(Value) as
(
    select rand(checksum(newid())) Value
        union all
    select rand(checksum(newid())) from Random  
)select top 10 * from Random

但这似乎过于骇人听闻:S 为什么 rand 在第一个版本中没有得到重新评估?

于 2008-10-08T14:45:06.323 回答