좀전에 union all 에대해 질문을 올렸습니다.
order by 문제로 해결이 되지 않아 다른 방법을 써볼려고 합니다.
제가 원했던 출력에 대해 설명해 드리겠습니다.
1. 컬럼 a : 1 , 컬럼 b : 0
2. 컬럼 a : 3 , 컬럼 b : 1
3. 컬럼 a : 2 , 컬럼 b : s
4. 컬럼 a : 8 , 컬럼 b : 0
5. 컬럼 a : 5 , 컬럼 b : s
6. 컬럼 a : 9 , 컬럼 b : s
7. 컬럼 a : 7 , 컬럼 b : 1
8. 컬럼 a : 4 , 컬럼 b : 0
9. 컬럼 a : 6 , 컬럼 b : 0
이렇게 테이블에 데이터가 들어 있습니다. 여기서 b컬럼 기준으로 순서를
s -> 1 -> 0 으로 하고 싶습니다.
1. 컬럼 a : 2 , 컬럼 b : s
2. 컬럼 a : 5 , 컬럼 b : s
3. 컬럼 a : 9 , 컬럼 b : s
4. 컬럼 a : 3 , 컬럼 b : 1
5. 컬럼 a : 7 , 컬럼 b : 1
6. 컬럼 a : 1 , 컬럼 b : 0
7. 컬럼 a : 8 , 컬럼 b : 0
8. 컬럼 a : 4 , 컬럼 b : 0
9. 컬럼 a : 6 , 컬럼 b : 0
이렇게 출력이 나왔습니다. 그다음에는 a컬럼을 높은순으로 하고 싶은데 여기서
b컬럼이 s 인거 끼리 , 1인거끼리 0인거끼리 높은순으로 매기고 싶습니다.
1. 컬럼 a : 9 , 컬럼 b : s
2. 컬럼 a : 5 , 컬럼 b : s
3. 컬럼 a : 2 , 컬럼 b : s
4. 컬럼 a : 7 , 컬럼 b : 1
5. 컬럼 a : 3 , 컬럼 b : 1
6. 컬럼 a : 8 , 컬럼 b : 0
7. 컬럼 a : 6 , 컬럼 b : 0
8. 컬럼 a : 4 , 컬럼 b : 0
9. 컬럼 a : 1 , 컬럼 b : 0
이게 제가 최종적으로 얻고 싶은 결과 물입니다... 이걸 하고 싶은데 제가 할 수 있는생각으론 union all을 이요하여
select * from aaa where b = 's' order by a desc // b가 s이면서 a값이 큰순서
union all
select * from aaa where b = '1' order by a desc // b가 1이면서 a값이 큰순서
union all
select * from aaa where b = '0' order by a desc // b가 0이면서 a값이 큰순서
이걸 생각 했으나 order by 문제로 union all이 먹히지 않아 고전하고 있습니다;;
저 과정에 출력을 얻고 싶은데 union all 말고 다른 방법이 있을까요?