A 를 기준으로 정렬하고 있다. 만약 A가 없으면(is null) B를 기준으로 정렬한다고 하자.
case 문을 사용하면 된다.
SELECT CustomerName, City, Country FROM Customers ORDER BY (CASE WHEN City IS NULL THEN Country ELSE City END); |
order by 에 들어가는 case 문을 기준으로 정렬이 된다.
City 가 만약 null 이라면 Country 를 기준으로 정렬하고,
City 가 null 아 아니라면 City 를 기준으로 정렬한다.
실제로 쿼리를 실행해보면,
전반적으로 city 기준의 정렬이 된 테이블 사이사이에
(City 가 null 이라서) null 값이 들어가있는 것을 볼 수 있다.
이는 City 기준으로 정렬되지 않았고, Country 기준으로 정렬되어있는 것을 말한다.
'SQL' 카테고리의 다른 글
[SQL] Min 과 Order By limit 1 중 어느 것을 사용해야 할까? (0) | 2021.06.19 |
---|---|
[SQL] cheating sheet 정리 (0) | 2020.12.21 |
[SQL] self join 예제 (0) | 2020.05.13 |
[SQL] 세 개 테이블 join 하는 방법 (0) | 2020.05.13 |
[SQL] BETWEEN, IN 여러번 적용하기 (0) | 2020.05.06 |