안녕하세요.
쿼리 정렬에 관련해서 질문 드립니다.
결과 값이 아래와 같이 나올 때 정렬 순서를 2, 3, 4, 1 이 나오게 하려면 어떻게 해야할까요?
현재 정렬 순서
A 1
A 2
A 3
A 4
원하는 정렬 순서
A 2
A 3
A 4
A 1
감사합니다.
Comment 3
-
Terry
2015.11.16 02:18
-
처리짱
2015.11.16 12:08
order by 절에 case를 쓰시면 됩니다
-
한태
2016.04.05 19:36
CREATE TABLE order_case
(id varchar(5),
num int)
INSERT INTO order_case VALUES
('A',1),('A',2),('A',3),('A',4)
SELECT * FROM order_case with(NOLOCK)
ORDER BY CASE num WHEN 1 THEN 1 ELSE 0 END, num
1을 가장 나중에 정렬하는 것으로 이해하고 쿼리를 작성했습니다.
예) 원컬럼이 id,num 이라고 했을때
Id, num, sortnum 으로 해서
With (id,num,sortnum) as
(
Select 'A',1,4 union all
Select 'A',2,1 union all
Select 'A',3,2 union all
Select 'A',4,3
)
Select a.id
, a.num
Order by a.sortnum asc
핸드폰으로 작성해서 오타가 있을수도 있으니
감안해서 보세요..