programing

SQL 서버 랜덤 정렬

javaba 2023. 9. 6. 22:30
반응형

SQL 서버 랜덤 정렬

저장 프로시저 내에서 sql 쿼리의 결과를 임의의 순서로 정렬하는 가장 좋은 방법은 무엇입니까?

SO# 19412를 복제한 것입니다.거기에 제가 한 대답은 다음과 같습니다.

select top 1 * from mytable order by newid()

SQL Server 2005 이상에서는 TABLESAMPLE을 사용하여 반복 가능한 랜덤 샘플을 얻을 수 있습니다.

SELECT FirstName, LastName FROM Contact TABLESAMPLE (1 ROWS) ;
select foo from Bar order by newid()

또는 더 나은 랜덤 샘플 결과를 반환하는 다음 쿼리를 사용합니다.

SELECT * FROM a_table WHERE 0.01 >= CAST(CHECKSUM(NEWID(), a_column) & 0x7fffffff AS float) / CAST (0x7fffffff AS int)

0.01은 총 행의 ~1%를 의미합니다.

SQL 2008 Books Online에서 인용한 내용:

개별 행의 랜덤 샘플을 원하는 경우, TABSAMPLE을 사용하는 대신 랜덤으로 행을 필터링하도록 쿼리를 수정합니다.

RAND()로 주문하면 하나의 값만 생성되기 때문에 당신도 알다시피 그냥 주문할 수는 없습니다.따라서 시드 값에 키를 사용합니다.

SELECT RAND(object_id), object_id, nameFROM sys.objects주문 기준 1개

언급URL : https://stackoverflow.com/questions/52964/sql-server-random-sort

반응형