DB/MSSQL

MSSQL ROW_NUMBER() OVER() 줄 때, 특정 값 상단으로 올리기

벨포트조던 2019. 1. 11.
반응형

select ROW_NUMBER() OVER(ORDER BY case when CONVERT(varchar(10), '2018-12-20', 120) <enddate then enddate else registerDate end  DESC , registerDate desc) , * from ~~~TABLE NAME ~~~~


쿼리는 자세히 쓰지 않음


-- 설명 


'2018-12-20'  <  enddate  일 경우

enddate desc로 한다. --- > 맨위로 올라옴

이 후 registerdate desc 기준이 됨 


추가로 마지막 , registerDate desc 이부분은 

enddate 기준으로 맨 위로 올린 기준에서 registerdate 로 정렬


마지막 , registerDate desc) 안넣엇을때

registerDate                        endDate

2019-01-03 15:18:08.860 2119-01-03 23:59:59.997

2018-12-12 14:09:32.233 2019-01-12 23:59:59.997

2018-12-14 13:47:34.130 2018-12-21 23:59:59.997

2018-12-14 13:48:16.207 2018-12-21 23:59:59.997

2018-12-14 13:49:18.087 2018-12-21 23:59:59.997

2018-11-09 16:28:02.043 2018-12-09 23:59:59.997

2018-11-08 16:33:10.310 2018-11-08 16:33:14.170


마지막 , registerDate desc) 이거 넣었을때,

registerDate                        endDate

2019-01-03 15:18:08.860 2119-01-03 23:59:59.997

2018-12-12 14:09:32.233 2019-01-12 23:59:59.997

2018-12-14 13:49:18.087 2018-12-21 23:59:59.997

2018-12-14 13:48:16.207 2018-12-21 23:59:59.997

2018-12-14 13:47:34.130 2018-12-21 23:59:59.997

2018-11-09 16:28:02.043 2018-12-09 23:59:59.997

2018-11-08 16:33:10.310 2018-11-08 16:33:14.170



2018-12-14 일짜의 시간기준이 다름



반응형

댓글