반응형
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
반응형
'programing' 카테고리의 다른 글
Vue.js에서 /deep/ 또는 >> 또는 ::v-deep을 어떻게 사용합니까? (0) | 2023.09.06 |
---|---|
Get-child 항목을 사용하여 지난 3일 동안 수정된 파일 목록 가져오기 (0) | 2023.09.06 |
호스트에서 도커 컨테이너로 MySQL 덤프를 복원하는 방법 (0) | 2023.09.06 |
Twitter 부트스트랩 드롭다운을 숨기는 방법 (0) | 2023.09.06 |
.xls 파일에서 "워크북의 절대 경로" 가져오기 (0) | 2023.08.17 |