728x90
반응형
배경 : 회사에서 반영했는데, 리스트 데이터 조회하는데 하나가 null로 나오는것임
데이터 있는데? 왜?
내용
예시)
컬럼에 이렇게 되어있다.
CONCAT((SELECT ORG_NM FROM ORGANIZATION WHERE ORG_CD = A.ORG_CD), ' / ' , A.USER_NM, '(', JCEM.USER_ID, ') / ', A.ROLE_LEVEL_NM) AS USER_NM
CONCAT 으로 감싸면 그 안에있는 데이터중 하나라도 NULL이 있으면 전체가 NULL로 나온다
COALESCE로 사용할 경우 그 안에 있는 데이터 중 NULL이 있으면 NULL만 빼고 나머지는 그대로 나온다.
마무리 정리는 퍼플렉시티로 한다.
CONCAT 함수
CONCAT은 여러 문자열을 하나로 결합하는 데 사용됩니다15.
COALESCE 함수
COALESCE는 여러 인수 중 첫 번째로 NULL이 아닌 값을 반환합니다5.
- 기본 사용법: COALESCE(값1, 값2, ...)
- 주로 NULL 값을 다른 값으로 대체할 때 사용됩니다5.
- 모든 인수가 NULL이면 NULL을 반환합니다.
주요 차이점
- 목적:
- CONCAT: 문자열 결합
- COALESCE: NULL 처리
- NULL 처리:
- CONCAT: NULL을 무시하고 나머지 문자열 연결
- COALESCE: 첫 번째 non-NULL 값 반환
- 반환 타입:
- CONCAT: 항상 문자열 반환
- COALESCE: 첫 번째 non-NULL 인수의 데이터 타입을 따름
- 사용 사례:
- CONCAT: 여러 컬럼이나 문자열을 하나로 합칠 때
- COALESCE: NULL 값을 기본값으로 대체하거나 여러 컬럼 중 첫 번째 non-NULL 값을 선택할 때
두 함수를 조합하여 사용하면 NULL 처리와 문자열 결합을 동시에 수행할 수 있습니다
728x90
반응형
'개발 > 05.SQL' 카테고리의 다른 글
[SQL, JOIN] Join 의 AND 조건과 Where 의 AND 조건 차이 (1) | 2024.09.11 |
---|---|
[MariaDB, MySQL] STRAIGHT_JOIN (4) | 2024.09.09 |
[DBeaver] 엑셀 다운로드 라이브러리 수동설치 방법 (0) | 2024.07.25 |