我需要生成的SQL Server 2005下的多個隨機值,並在某種程度上這根本不會工作多個隨機值2005
with Random(Value) as
(
select rand() Value
union all
select rand() from Random
)select top 10 * from Random
請告訴我較受歡迎的解決方法嗎?
我需要生成的SQL Server 2005下的多個隨機值,並在某種程度上這根本不會工作多個隨機值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
,那麼你可以把它在你的選擇是正常 選擇dbo.RandNumber() ,* from myTable
or from their comments:
select RAND(CAST(NEWID() AS BINARY(6))), * from myTable
謝謝!似乎他們評論中的解決方案與我經過一番修改後提出的相同。真奇怪,它沒有得到重新評估。 – 2008-10-08 15:03:07
我目前使用這樣的:
with Random(Value) as
(
select rand(checksum(newid())) Value
union all
select rand(checksum(newid())) from Random
)select top 10 * from Random
,但似乎過於的hackish:S 爲什麼犯規蘭特在第一個版本重新估計?
這將有與newid()一樣多的熵。校驗和()和rand()在這種情況下都是確定性的。 – 2009-06-18 15:23:51
我喜歡這樣的問題,迫使我去學習新的東西!謝謝!希望答案有幫助。 – Mauro 2008-10-08 15:01:35