반응형
COALESCE는 값이 NULL일때 다른 문구로 바꿔주는 DB 함수이다.
아래의 예시를 통해 보자!
[사용법]
SELECT COALESCE( 컬럼1명, 컬럼1명이 NULL일때 사용하고 싶은 문구)
=> SELECT COALESCE(AGE, 10)
=> AGE가 NULL이면 10, 아니면 해당 AGE의 값이 출력!
[테이블 예시]
IDX | NAME | AGE |
1 | TURTLE | 20 |
2 | RABBIT | NULL |
이런 데이터가 있다고 했을때 아래의 쿼리로 던져보면
SELECT AGE
FROM TABLENAME
WHERE NAME = 'RABBIT';
# 해당 결과 : NULL
이럴때 NULL이라는것을 표시하고 싶지 않을때가 있다. 그럴때 아래의 문구로 작성하면 된다.
SELECT COALESCE(AGE, -1)
FROM TABLENAME
WHERE NAME = 'RABBIT';
# 해당 결과 : -1
여기서 문제가 생긴다!
데이터에 없는 이름을 넣으면? AGE가 NULL인지의 문제가 아니라 그냥 해당 데이터 자체가 없으면?
여기서 해결법은 한번더 감싸주는것!
[문제]
SELECT COALESCE(AGE, -1)
FROM TABLENAME
WHERE NAME = 'APPLE';
# 해당 결과 : 조회되는 내용이 없음
[해결법]
SELECT COALESCE(
SELECT AGE
FROM TABLENAME
WHERE NAME = 'APPLE'
), 'NO NAME');
# 해당 결과 : 'NO NAME'
만약 이와 같은 문제가 있었다면 없는 이름의 조회값도 NULL로 받아지도록 걸러내보자!
반응형
'프로그래밍 공부 > DBMS' 카테고리의 다른 글
#{} ${} (0) | 2023.01.09 |
---|---|
[lesson] DBMS - 삭제조건과 KEY (후보, 기본, 조합, 슈퍼, 외래, 유니크) (0) | 2021.08.23 |
[lesson] DBMS - VIEW (0) | 2021.08.22 |
[lesson] DBMS - JOIN (0) | 2021.08.22 |
[lesson] DBMS - CREATE AS(데이터 복사) (0) | 2021.08.21 |