본문 바로가기
컴퓨터관련/MS-SQL

MS-SQL에서 랜덤정렬하기

by 빛과 어둠사이 2020. 3. 11.
728x90
반응형
SMALL

이번에는 MS-SQL에서의 

랜덤 정렬을 하는 방법을

정리해보려고 합니다.


보통 정렬을 할 때,

오름차순, 내림차순으로

정렬을 많이 합니다.


하지만 하다보면

가끔 랜덤 정렬을 해야 하는 경우도 있습니다.

Oracle나 My-SQL의 경우에는

랜덤함수가 있어서 랜덤함수를 이용하여

정렬할 수 있습니다.


하지만, SQL Server에서는 랜덤함수가 딱히 애매해서

정렬을 할 때 랜덤으로 정렬할 수 없습니다.

그래서 SQL Server에서는 유니크값을 생성해서

해당 값을 기준으로 정렬을 시킬 수 있습니다.



유니크값을 생성하는

함수는 NEWID() 입니다.



우선, NEWID()값을 사용하는

예제를 확인해보도록 하겠습니다.

예제 쿼리는 다음과 가습니다.

1111111111111

위처럼 하면 됩니다.

그러면 결과는 아래처럼 나오게 됩니다.



위처럼 나오게 됩니다.

이상한 유니크 값이 나오게 되는 것입니다.

그리고 위의 쿼리를

다시 한번 동작시키면

결과는 아래처럼 나옵니다.



위처럼 결과가 달라진 것을

확인할 수 있습니다.

이렇게 랜덤으로 나오는

유니크 값을 기준으로

랜덤 정렬을 할 수 있는 것입니다.





그러면 이제 MS-SQL에서

랜덤으로 정렬하는 방법을

정리해보고자 합니다.


우선, 기본적으로 데이터가 어떻게 들어가져 있는지

확인을 해 보아야겠죠?

아래처럼 쿼리를 작성하였습니다.

222222222

위처럼 하여 실행을 하면

결과는 다음과 같이 나옵니다.



위처럼 나오게 됩니다.

제가 데이터를 넣었던 순서대로이고,

이렇게 데이터가 들어가져 있습니다.



그러면 이번에는

랜덤으로 정렬이 되도록

해보도록 하겠습니다.

쿼리는 다음과 같이 하였습니다.

3333333333


위처럼 쿼리를 하고

실행을 해 보았습니다.

그랬더니 결과는 다음과 같이 나왔습니다.



위처럼 랜덤으로 정렬이 되어 나온것을

확인할 수 있었습니다.


그리고 위 쿼리를 한번 더

실행을 해보았습니다.

그랬더니 결과는 다음과 같이 나왔습니다.



역시나 결과가 또다시 바뀐 것을

확인할 수 있었습니다.





그러면 이번에는

랜덤으로 하나의 데이터만 나오게 해보는 것을

봐보도록 하겠습니다.


저는 그냥 간단하게 top 명령어를 사용하였습니다.

그래서 아래처럼 작성하였습니다.

444444444444

위와 같이 작성하고

실행을 해보았습니다.

그랬더니 결과는 다음과 같이 나오게 되었습니다.



위처럼 랜덤으로 정렬이 되어서

하나의 데이터만 나와진 것을

확인할 수 있었습니다.



그리고 위 쿼리를 다시 그대로 돌리면

결과는 아래처럼 나와집니다.



또다시 정렬이 바뀌어서 

나와진 것을

확인할 수 있습니다.






이번에는 SQL SERVER에서 랜덤으로 정렬하는 방법을

정리해보았습니다.

정식 랜덤함수를 사용한 것이 아니기 때문에

완전 좋다고는 할 수 없으나,

대신에 사용할 수 있는 방법을 정리해보았습니다.



굳이 정렬 뿐 아니라

다른 상황에서도

유니크한 값을 가져오게 하여

필요에 따라서 사용할 수도 있을 것 같습니다.





이상으로 MS-SQL에서의

유니크값을 가지고와서

랜덤 정렬하는 방법이였습니다~





728x90
반응형
LIST