테이블 a (열 a1 포함) 및 b (열 b1 및 b2 포함)가 있고 왼쪽 외부 조인을 수행한다고 가정합니다.
SELECT *
FROM a LEFT OUTER JOIN b
ON a.a1 = b.b1
그러면 b1과 b2는 NULL이되고 여기서 a1의 값은 b1과 일치하는 값이 없습니다.
NULL 대신 b2에 기본값을 제공 할 수 있습니까? a1과 일치하는 b1 값 이 있는 b2의 기본값이 잠재적 NULL을 무시 하지 않기 때문에 COALESCE는 여기서 작동 하지 않습니다 .
즉, a와 b를
CREATE TABLE a (a1)
AS VALUES (1),
(2),
(3) ;
CREATE TABLE b (b1,b2)
AS VALUES (1, 10),
(3, null) ;
a1 b1 | b2
--- --------
1 1 | 10
2 3 | NULL
3
b2의 기본값은 100입니다. 결과를 얻고 싶습니다.
a1 | b1 | b2
---------------
1 | 1 | 10
2 | NULL | 100
3 | 3 | NULL
이 간단한 경우에 출력에서 b1이 NULL인지 여부를 확인하여 "수동으로"수행 할 수 있습니다. 이것이 일반적으로 최선의 선택입니까, 아니면 더 표준적이고 깔끔한 방법입니까?
sql
(이는 "SQL 쿼리 언어"를 의미합니다. 해당 태그는 특정 DBMS 제품 또는 방언을 나타내지 않습니다). 부분[b2]=CASE WHEN ... END
은 유효하지 않은 (표준) SQL 표현식입니다.