반응형
정렬 조건 없이 순번을 매겨보자
일반적으로 순번을 지정할 때 ROW_NUMBER(), RANK, DENSE_RANK 등을 이용한다.
[MSSQL] ROW_NUMBER, RANK, DENSE_RANK 순위함수
SELECT ROW_NUMBER() OVER(ORDER BY 컬럼명) FROM 테이블명
SELECT RANK() OVER(ORDER BY 컬럼명) FROM 테이블명
SELECT DENSE_RANK() OVER(ORDER BY 컬럼명) FROM 테이블명
이렇게 정렬할 기준 컬럼을 지정 후 순위를 매긴다.
하지만 SELECT 해서 나오는 결과 그대로 순위를 매기려고 한다.
SELECT ROW_NUMBER() OVER(ORDER BY 1)
FROM 테이블명
다음과 같이 ORDER BY 1로 하면 될 거 같은데...! 안된다..
그렇다면 어떻게 처리해야할까?
첫번째 방법. 의미없는 변수 사용
DECLARE @row INT = 1 -- 의미 없는 변수
SELECT ROW_NUMBER() OVER(ORDER BY @row)
FROM 테이블명
이렇게 의미없는 변수를 선언해주고 해당 변수를 ORDER BY 절에 넣어준다.
두번째 방법. SELECT 1 사용
SELECT ROW_NUMBER () OVER(ORDER BY (SELECT 1))
FROM 테이블명
반응형
'프로그래밍 > DataBase' 카테고리의 다른 글
[MSSQL] identity 를 설정한 칼럼에 insert 하기 (0) | 2023.06.19 |
---|---|
MSSQL 탭( char(9) )과 엔터값( char(10) + char(13) ) 찾아보기 (0) | 2023.06.09 |
[MSSQL] NTILE(Transact-SQL) (0) | 2023.05.15 |
데이터 분석가 나도 시작할 수 있을까? (역량, 공부) (0) | 2023.01.19 |
[MSSQL] STRING_AGG(Transact-SQL) 문자열 식의 값을 연결하고 그 사이에 구분 기호 값을 추가 (0) | 2023.01.17 |