rownum과 같은 mssql 방법


안녕하세요.
고코더 입니다.



시퀀스가 없는 테이블을 조회한 후에 해당 컬럼에 대한 순차적인 정보를 가져와야 할 경우 사용할 수 있는 방법입니다. 오라클에서는 rownum이 간단하게 해결 가능하지만 MSSQL은 약간의 방법이 필요 합니다.

 1. 해당 테이블의 select로 조회 한 결과 
1
2
3
4
5
6
7
8
9
SELECT
  ROW_NUMBER() OVER(ORDER BY GoCoder desC) AS SEQ
       ,[GoCoder]
       ,[Blog]
       ,[Homepage]
       ,[Go]
       ,[gocoder_net]
       ,[gocoder.tistory.com]
FROM [db_gocoder].[dbo].[Go]
cs

 2. 고유 번호가 없는 테이블입니다. (결과 창 맨앞에 있는 순번은 결과창 순번입니다. 데이터가 아닙니다.)



 3. ROW_NUMBER()를 사용하여 해당 테이블 앞에 고유 순번을 매길려고 합니다.
아래 쿼리를 실행해주세요. 

1
2
3
4
5
6
7
8
9
SELECT
  ROW_NUMBER() OVER(ORDER BY GoCoder desC) AS SEQ
       ,[GoCoder]
       ,[Blog]
       ,[Homepage]
       ,[Go]
       ,[gocoder_net]
       ,[gocoder.tistory.com]
FROM [db_gocoder].[dbo].[Go]
cs

 4. 원래 데이터 앞에 SEQ라는 순차적인 순번이 생겼습니다. 개발하기 편리하게 되었습니다. 


 5. 이 방법의 유의점은 정렬이 필요한 컬럼을 지정해줘야 합니다. Over안에 오더바이를 꼭 넣어줘야 합니다. (오라클은 그냥 되는데 귀찮네요)

1
ROW_NUMBER() OVER(ORDER BY 정렬컬럼 desC) AS SEQ
cs



마무리


고유번호가 있어야 개발이 쉽죠 


댓글을 달아 주세요