오늘은 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에서 랜덤 정렬 및 랜덤으로 값을 가져오는 방법이였습니다~
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'컴퓨터관련 > MS-SQL' 카테고리의 다른 글
MSSQL에서 특정 텍스트 포함 프로시저 검색하기 (0) | 2020.10.30 |
---|---|
MS-SQL에서 Data File 가용량 확인하기 (0) | 2020.10.14 |
MSSQL 데이터베이스 수준 역할 정리 (0) | 2020.08.20 |
SSMS에서 쿼리 실행 후 영어에서 한글로 바뀔 때 (2) | 2020.08.14 |
MSSQL에서 테이블별 사이즈 및 건수 확인하기 (0) | 2020.07.29 |