2008-10-08 3 views
2

나는 SQL 서버 2005에서 여러 임의 값을 생성해야하고 어떻게 든이 단순히 않을여러 임의 값은 2005

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

)select top 10 * from Random 

작동 뭐죠 단련 시킨다면 해결 방법?

+0

나는 뭔가 새로운 것을 배우러 가야만하는 이런 질문을 좋아합니다! 감사! 희망이 대답을 도왔습니다. – Mauro

답변

3

은 (http://weblogs.sqlteam.com에서 발견) 같은 것을 시도해야 , * from myTable

또는 그 의견 :

select RAND(CAST(NEWID() AS BINARY(6))), * from myTable 
+0

감사! 그들의 의견에서 나온 해결책과 같아 보인다. 나는 약간의 땜질 후에 내가 생각해 낸 것과 같은 것 같다. 정말 이상하지 않은가 revaluated 얻을. –

0

나는 현재이 사용하고 있습니다 :

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

을하지만 지나치게 hackish 보인다 S 왜 나던 랜드 첫 번째 버전에서 재평가받을?) (

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 같은 당신의 선택에 호출 할 수 있습니다를 만듭니다

+0

그건 newid()만큼 엔트로피가 생깁니다. checksum()과 rand()는이 문맥에서 모두 결정적입니다. –