개발하는 고양이 오이

1. [MSSQL] 해당 행이 몇 번째 행인지 알고 싶을 때 본문

SQL

1. [MSSQL] 해당 행이 몇 번째 행인지 알고 싶을 때

Cucum 2021. 9. 24. 09:12

 

 

--MSSQL에서 해당 행이 몇번째로 위치하는지--

 

우선 테이블에 순번을 매기고자 한다면 아래 코드와 같습니다.

 

SELECT ROW_NUMBER() OVER ( ORDER BY ( SELECT 1 ) ) AS rownum, *
FROM 테이블 이름
WHERE 조건A

(조건A의 경우에는 필요할 때 넣어주고 필요 없을때는 넣어주지 않아도 됩니다.)

 

이때 저 같은 경우에는 오름차순/내림차순으로 정렬한 테이블에 순번을 매기고 싶었는데 위와 같이 코드를 작성하면 순번이 매겨진 후에 정렬을 해서 순번이 뒤죽박죽 됩니다.

 

저와 같이

정렬한 후에 테이블에 순번을 매기고 싶다면 아래와 같이 SQL문을 작성하면 됩니다.

SELECT ROW_NUMBER() OVER ( ORDER BY 정렬하고자 하는 컬럼 ASC ) AS rownum, *
FROM 테이블 이름
WHERE 조건A

이제 정렬된 rownum 중에서 한개의 행을 선택 후 그 행의 rownum이 몇인지, 즉 몇번째 행인지 알기 위해서는 SELECT문으로 감싸주면 됩니다. 즉 이중쿼리를 작성하면 됩니다.

 

SELECT rownum
FROM (
    SELECT ROW_NUMBER() OVER ( ORDER BY 정렬하고자 하는 컬럼 ASC ) AS rownum, *
    FROM 테이블 이름
    WHERE 조건A
)T
WHERE 조건B

(조건B의 경우에는 한개의 행만 선택하고자 할때의 조건을 적어주면 됩니다.)

 

위와 같이 작성하면 조건에 맞는 행이 그 테이블에서 몇번째 행에 위치하는지를 알 수 있습니다.

감사합니다.

'SQL' 카테고리의 다른 글

[MSSQL] / [MYSQL] - TOP1 / LIMIT 1  (0) 2022.05.09
2. [MSSQL] 날짜 변환 (CONVERT(), GETDATE())  (0) 2022.01.18