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
その後、通常の選択でそれを呼び出すことができます 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 が再評価されないのですか?