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 기준으로 정렬되어있는 것을 말한다.

+ Recent posts