원하는 값대로 정렬해서 join 하려면?
SELECT 0 as difficulty UNION SELECT 1 UNION SELECT 2
이런식으로 가상 값을 만들어줘서 그 값들은 union 시켜서 하나의 테이블을 만들다
difficulty 이렇게 하나만 들어가 있는 경우는 유니온을 시키면 뒤에 값들도 같은 컬럼을 쓰기 때문이다.
이렇게 가상 테이블은 만들어서 left join을 해버리면 값이 없는 것은 null 처리가 된다.
예제
SELECT j_gek,
j_ju,
g_gek,
g_ju
FROM
(SELECT 0 as difficulty
UNION
SELECT 1
UNION
SELECT 2
) tab
LEFT OUTER JOIN
(SELECT bank_difficulty,
sum
(
CASE
WHEN bank_week < 8
AND bank_kind = 2
THEN 1
ELSE 0
END
) as j_gek,
sum
(
CASE
WHEN bank_week < 8
AND bank_kind = 3
THEN 1
ELSE 0
END
) as j_ju,
sum
(
CASE
WHEN bank_week > 8
AND bank_kind = 2
THEN 1
ELSE 0
END
) as g_gek,
sum
(
CASE
WHEN bank_week > 8
AND bank_kind = 3
THEN 1
ELSE 0
END
) as g_ju
FROM exam_bank_prof
WHERE bank_code ='가족관계'
GROUP BY bank_difficulty
) tab2
ON difficulty = bank_difficulty