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

MS-SQL 에서 랜덤으로 정렬 및 값가져오기

by 빛과 어둠사이 2021. 3. 24.
728x90
반응형
SMALL

오늘은 MS-SQL에서 랜덤으로 값을 정렬하고

값을 가져오는 방법을 정리해보려고 합니다.

 

오라클이나 다른 DBMS에서는

랜덤함수가 있는 것으로 알고있는데

SQL Server에서는 없는 것으로 알고 있거든요.

그래서 이번에는 이가 없으면 잇몸으로.

다른 함수를 이용하여 Random 함수가 있는 것처럼

사용하는 방법을

정리해보려고 합니다.

 

MSSQL에서 Random하게 데이터를 추출하기 위해서는

NEWID()라는 함수를 이용하면 됩니다.

그러면 랜덤하게 값을 가져올 수 있습니다.

 

 

우선 이를 확인하기 위해서

NEWID() 함수만 사용해보도록 하겠습니다.

select newid()

위와 같이 쿼리를 작성하여

실행을 해보았습니다.

그러면 아래처럼 결과가 나오는 것을

확인할 수 있습니다.

 

 

 

그리고 위 쿼리를 다시 한번

실행을 해보았습니다.

그러면 결과가 아래처럼 나와집니다.

 

 

위처럼 같은 쿼리인데 결과가 다르게 나와지는 것을

확인할 수 있습니다.

 

그래서 이 함수를 이용하여

데이터를 정렬할 수 있는 것입니다.

 

 

 

 

 

그러면 이제 실제 데이터를 가지고 보면서

랜덤으로 어떻게 나오게 되는지

확인을 해보도록 하겠습니다.

 

우선, 원래 데이터가 어떻게 들어있는지부터

확인을 해보도록 하겠습니다.

 

 

select * from test_member 

위와 같이 쿼리를 작성하였습니다.

그리고 실행을 하면

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

 

 

 

위처럼 이렇게 데이터가 구성이 되어 있는 것을

확인할 수 있습니다.

 

 

그러면 이제 NEWID() 함수를 이용하여

데이터를 랜덤 정렬해보도록 하겠습니다. 

select * from test_member 
order by newid()

 

쿼리를 위와 같이 작성하였습니다.

그리고 실행을 하면

결과는 다음과 같이 나오게 됩니다.

 

 

그리고 위 쿼리를 다시 실행을 하게 된다면,

결과는 아래처럼 나오게 되는 것입니다.

 

위처럼 동일한 쿼리이지만,

정렬순서가 임의로 바뀌게 되어

나오게 되는 것을 확인할 수 있습니다.

NEWID() 함수를 이용하여 난수가 발생되었고,

그 값이 다 다르기 때문에

이 값에 대한 정렬로 해서 다르게 나오게 되는 것입니다.

 

 

 

그러면 Random으로 한개의 데이터만 가져오고 싶다면?

그렇다면 그냥 top 명령어를 이용하면 됩니다.

랜덤 정렬 후 한개의 데이터만 가져오도록 하면

되는 것입니다.

 

 

실제 사용 예제를

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

 

select top 1 * from test_member 
order by newid()

위 쿼리는 랜덤으로 정렬시킨 쿼리에서

top 1 만 추가를 한 것입니다.

그러면 랜덤 정렬을 하고

그 중에 한개의 데이터만 가져오는 것입니다.

 

위 쿼리를 돌리게 되면

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

 

 

 

그리고 다시 돌리게 된다면

아래처럼 나오게 됩니다.

 

 

위처럼 나오게 됩니다.

즉, 랜덤으로 한개의 데이터만 가져오도록 한 것입니다.

 

 

 

 

 

오늘은 MSSQL에서 랜덤으로 정렬 및

데이터를 가져오는 방법을

정리해보았습니다.

 

 

계속 DB를 쓰다보면

Random으로 값을 가져와야 하는 경우가

간혹 있습니다.

그럴 때 이렇게 사용을 하면

될 것 같습니다.

 

 

 

이상으로 SQLServer에서 랜덤 정렬 및 랜덤으로 값을 가져오는 방법이였습니다~

 

 

 

 

 

 

 

 

이것이 SQL Server다:실습으로 체험하고 바로 운영한다, 한빛미디어

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음

 

 

 

 

 

 

 

728x90
반응형
LIST