IT'S YU
[Oracle] sql 여러 컬럼을 한 컬럼에 출력하기 본문
컬럼 A와 컬럼 B를 한 컬럼에 이어붙이기
1) 첫번째 방법 시도,,
CASE WHEN 구문을 사용해서 아래 쿼리로 사용하려고 했으나 일관성 없는 데이터 유형 CLOB이라는 오류가 뜸
SELECT CASE WHEN A IS NOT NULL AND B IS NOT NULL THEN A || ',' || B
WHEN A IS NOT NULL AND B IS NULL THEN A
WHEN A IS NULL AND B IS NOT NULL THEN B
WHEN A IS NULL AND B IS NULL THEN ''
ELSE '' END
FROM TEST
;
2) 두번째 방법 시도,,
CONCAT(CONCAT(A, ','), B) 또는 A || ',' || B를 사용하면
A와 B 중 NULL인 경우가 있으면 ,(콤마) 만 출력되게 됨..
COALESCE(A,B)를 사용하면 A가 NULL이 아니면 B에 값이 있어도 A만 출력되기 때문에 부적합..
3) 세번째 방법
CASE WHEN 구문 안에 CONCAT이랑 COALESCE를 사용했더니 해결됨!
SELECT CASE WHEN A IS NOT NULL AND B IS NOT NULL THEN CONCAT(CONCAT(A, ',') B)
ELSE COALESCE(A,B)
END
FROM TEST
;
* CONCAT
https://m.blog.naver.com/regenesis90/222181036571
[오라클/SQL] CONCAT, || : 문자열 연결 함수, 컬럼 문자열 연결 연산자 - 컬럼의 값을 붙여 조회하기
두 개 이상의 컬럼을 합쳐 하나의 문자열 컬럼으로 표시하거나, 컬럼 몇 가지의 데이터를 이용해 완성된 문...
blog.naver.com
* COALESCE(col1, col2, col3, ...) : null이 아닌 첫번째 값을 반환하는 함수
https://jhnyang.tistory.com/387
[오라클 MySQL] COALESCE 두 개 컬럼 중 존재하는 값으로 합치고 싶을 때, 컬럼 병합하는 함수, 여러
[DBMS 데이터베이스 SQL 완전정복 목차] 안녕하세요 양햄찌 블로그 주인장입니다. 오늘은 SQL 함수 중 COALESCE 에 대해 작성하려고 해요. COALESCE 자체가 원래 기본적으로 합치다 라는 뜻이 있죠?? 넹
jhnyang.tistory.com
'DB > Oracle' 카테고리의 다른 글
[Oracle] 특정 텍스트 포함 프로시저 검색 (0) | 2022.05.02 |
---|---|
[Oracle] SQL NVL, NVL2 차이점 (0) | 2022.04.29 |
[Oracle] 조건문에 1=1 사용하는 이유 (WHERE, 동적쿼리) (0) | 2022.02.28 |
[SQL developer] 여러줄 주석 처리 단축키 (0) | 2022.02.23 |
[SQL developer] 대문자 변환 단축키 (0) | 2022.02.23 |