비교 또는 조건이 참이 아닌 경우 CASE 문은 결과 를 반환한다는 것을 알고 있습니다. ELSE 뒤에 지정됨 성명. 하지만 ELSE가 없으면 어떻게 될까요? 문, 이 상황에서 CASE 문은 NULL을 반환합니다. 다음은 이를 보여주는 예입니다.
예
mysql> Select CASE 100 -> WHEN 150 THEN 'It is matched' -> WHEN 200 THEN 'It is not matched' -> END As 'It Returns NULL'; +-----------------+ | It Returns NULL | +-----------------+ | NULL | +-----------------+ 1 row in set (0.00 sec)
'Students' 테이블의 데이터를 사용하는 아래 쿼리는 WI 국가에 속한 학생이 없기 때문에 NULL을 반환합니다.
mysql> Select SUM(CASE WHEN country = 'USA' THEN 1 ELSE 0 END) AS USA, -> SUM(CASE WHEN country = 'UK' THEN 1 ELSE 0 END) AS UK, -> SUM(CASE WHEN country = 'INDIA' THEN 1 ELSE 0 END) AS INDIA, -> SUM(CASE WHEN country = 'Russia' THEN 1 ELSE 0 END) AS Russia, -> SUM(CASE WHEN country = 'France' THEN 1 ELSE 0 END) AS France, -> SUM(CASE WHEN country = 'NZ' THEN 1 ELSE 0 END) AS NZ, -> SUM(CASE WHEN country = 'Australia' THEN 1 ELSE 0 END) AS Australia, -> SUM(CASE WHEN country = 'WI' THEN 1 END) AS WI -> From Students; +------+------+-------+--------+--------+------+-----------+------+ | USA | UK | INDIA | Russia | France | NZ | Australia | WI | +------+------+-------+--------+--------+------+-----------+------+ | 2 | 1 | 2 | 1 | 1 | 1 | 1 | NULL | +------+------+-------+--------+--------+------+-----------+------+ 1 row in set (0.00 sec)