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

その後、通常の選択でそれを呼び出すことができます 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 に答える