我需要在 SQL Server 2005 下生成多个随机值,不知何故这根本行不通
with Random(Value) as
(
select rand() Value
union all
select rand() from Random
)select top 10 * from Random
首选的解决方法是什么?
我需要在 SQL Server 2005 下生成多个随机值,不知何故这根本行不通
with Random(Value) as
(
select rand() Value
union all
select rand() from Random
)select top 10 * from Random
首选的解决方法是什么?
你有没有尝试过这样的事情(在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
我目前正在使用这个:
with Random(Value) as
(
select rand(checksum(newid())) Value
union all
select rand(checksum(newid())) from Random
)select top 10 * from Random
但这似乎过于骇人听闻:S 为什么 rand 在第一个版本中没有得到重新评估?