특정값을 가지는 행을 우선으로 정렬하기
페이지 정보
작성자 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 3,048회 작성일 18-09-07 16:13본문
좀 복잡한 쿼리인데.. 간단히하자면..
아래와 같은 테이블이 있다고 가정할때..
idx name 출생일(아무렇게나-_-)
1 강감찬 1111
2 권율 1234
3 이순신 1324
4 세종대왕 1756
5 장영실 1774
6 홍길동 1600
이런상황일때..
idx순으로 정렬을해서 출력을 하되(1,2,3,4,5,6)
출생일이 1300년대인 사람과 1600년대인사람을 가장 맨위로 출력을 한후 나머지를 idx로 정렬을하고싶다면 어떻게 쿼리를 짜야하나요 -_-?
------------------------------------------------
-- 준비
create table tmp(idx int,name varchar(10),출생일 int)
insert tmp values(1,'강감찬',1111)
insert tmp values(2,'권율',1234)
insert tmp values(3,'이순신',1324)
insert tmp values(4,'세종대왕',1756)
insert tmp values(5,'장영실',1774)
insert tmp values(6,'홍길동',1600)
------------------------------------------------
-- 여기부터
select * from tmp
order by case when 출생일 / 100 in (13,16) then 0 else 1 end,idx
------------------------------------------------
-- 결과
idx name 출생일
----------- ---------- -----------
3 이순신 1324
6 홍길동 1600
1 강감찬 1111
2 권율 1234
4 세종대왕 1756
5 장영실 1774
(6개 행 적용됨)
댓글목록
등록된 댓글이 없습니다.