티스토리 뷰

반응형

프로젝트를 진행하다보면 가끔씩 랜덤으로 데이터를 정렬해야하는 경우가 있습니다. MSSQL에서는 NEWID()함수를 ORDER BY 절에 사용해서 간단히 랜덤 정렬을 할 수 있습니다.

 

NEWID() 함수는 새로운 고유 식별자(GUID)를 생성하는 함수입니다. 매번 호출될 때마다 랜덤한 고유한 값을 반환하는데 그 값은 16진수로 표현되는 128비트 값입니다. 이 함수를 ORDER BY 구문과 함께 사용하면 각 행에 대해 랜덤한 값을 생성하여 그 값에 따라 정렬을 수행합니다. 실행할 때마다 그 값이 변경되기 때문에 랜덤 정렬이 가능합니다.


다음 쿼리에 사용한 예입니다.

SELECT * FROM TableName
ORDER BY NEWID();

 

좀 더 자세한 예제를 통해 확인해보겠습니다. 아래는 랜덤하게 고객 정보를 가지고 있는 Customers 테이블에서 NEWID() 함수를 적용한 예제입니다.

SELECT * FROM Customers
ORDER BY NEWID();

 

위의 쿼리를 실행하면 Customers 테이블의 모든 레코드가 랜덤한 순서로 반환됩니다. 실행할 때마다 결과가 다르게 정렬되고 고객 정보의 순서가 무작위로 변경됩니다.

 

예를 들어 맨 처음 실행했을때는 다음과 같은 결과가 나와도

CustomerID  |  CustomerName
----------------------------
3           |  John Doe
1           |  Jane Smith
5           |  David Lee
2           |  Sarah Johnson
4           |  Michael Brown

동일한 쿼리를 다시 실행했을 때 결과는

CustomerID  |  CustomerName
----------------------------
2           |  Sarah Johnson
5           |  David Lee
1           |  Jane Smith
3           |  John Doe
4           |  Michael Brown

위와 같이 전혀 다른 순서로 출력됩니다.

 

ORDER BY 절에 간단한 NEWID() 함수만 선언하면 랜덤 정렬이 되기 때문에 이벤트를 하거나 시험문제를 출력할 때 랜덤으로 정렬이 필요하다면 꼭 한 번 사용해보시기 바랍니다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함