WHEN 90 <= (SELECT datediff(now(), max(rental_date))
FROM rental r
WHERE r.customer_id = customer.customer_id)
THEN 0
ELSE 1
END
WHERE active = 1;
이 구문은 상관 서브쿼리를 사용해서 각 고객의 마지막 대여일 이후의 일 수를 계산하고 그 값
을
90
과 비교합니다. 서브쿼리에서 반환된 숫자가
90
이상이면 고객은 비활성 상태로 표시합
니다.
11.3.5
Null
값 처리
열의 값을 알 수 없을 때는
null
값을 테이블에 저장하는 게 적절해 보이지만, 화면에 결과를
보여줄 때
null
을 표시하는 것은 적절하지 않습니다. 예를 들어 해당 필드를 공백으로 두기보
다는 데이터 입력 화면에
unknown
이라는 단어를 표시할 수 있습니다. 데이터를 조회할 때 다
음과 같이 값이
null
일 때는
case
표현식을 사용해서 원하는 문자열로 대체할 수 있습니다.
SELECT c.first_name, c.last_name,
CASE
WHEN a.address IS NULL THEN 'Unknown'
ELSE a.address
END address,
CASE
WHEN ct.city IS NULL ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.