Несколько случайных значений в SQL Server 2005 - PullRequest
2 голосов
/ 08 октября 2008

Мне нужно создать несколько случайных значений в SQL Server 2005, и почему-то это просто не будет работать

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

)select top 10 * from Random

Какой предпочитаемый способ обхода?

Ответы [ 2 ]

3 голосов
/ 08 октября 2008

есть ли у вас что-то подобное (найдено на 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 (), * из myTable

или из их комментариев:

select RAND(CAST(NEWID() AS BINARY(6))), * from myTable
0 голосов
/ 08 октября 2008

Я сейчас использую это:

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

но это кажется слишком хакерским: S Почему rand не переоценивается в первой версии?

...