문자열 결합연산자 ' || '
- 자바의 String class의 '+'와 같은 기능 (ex. "문자" + "출력" ) → ( '문자' || '출력' )
- 두 문자열을 결합하여 하나의 새로운 문자열 반환
- 문자열 결합함수 CONCAT( )이 제공
표현식
- 애플리케이션 언어의 IF 또는 SWITCH문의 기능을 제공
- CASE WHEN ~ THEN ~ END와 DECODE 표현식이 제공됨
- SELECT절에만 사용
DECODE
DECODE ( 컬럼, 조건1, 결과1, 조건2, 결과2, ... 결과n)
- '컬럼'을 평가하여 그 값이 '조건1'과 같으면 '결과1'을 반환하고, '조건2'와 같으면 '결과2'를 반환, 모든 '조건'과 일치하지 않으면 '결과n'을 반환(else~)
- 자바 if문으로 표현하면
if (컬럼 == 조건1) 결과1;
else if(컬럼 == 조건2) 결과2;
else 결과n;
사용예시
회원테이블에서 회원번호, 회원명, 주민등록번호, 성별을 조회하시오.
SELECT MEM_ID AS 회원번호,
MEM_NAME AS 회원명,
MEM_REGNO1 || '-' || MEM_REGNO2 AS 주민등록번호,
DECODE(SUBSTR(MEM_REGNO2,1,1),'1','남성','2','여성','3','남성','4','여성','데이터 오류') AS 성별
FROM MEMBER
CASE ) 조건식 1
CASE WHEN 조건1 THEN 반환값1
WHEN 조건2 THEN 반환값2
:
WHEN 조건n THEN 반환값n
ELSE 반환값m
END AS 별칭( ; 과 , 가 아닌 END로 끝냄)
사용예시
회원테이블에서 회원번호, 회원명, 주민등록번호, 성별을 조회하시오.
SELECT MEM_ID AS 회원번호,
MEM_NAME AS 회원명,
MEM_REGNO1 || '-' || MEM_REGNO2 AS 주민등록번호,
CASE WHEN SUBSTR(MEM_REGNO2,1,1) IN('1','3') THEN '남성'
WHEN SUBSTR(MEM_REGNO2,1,1) IN('2','4') THEN '여성'
ELSE '데이터 오류'
END AS 성별
FROM MEMBER
CASE ) 조건식2
CASE 컬럼 WHEN 값1 THEN 반환값1
WHEN 값2 THEN 반환값2
:
WHEN 값n THEN 반환값n
ELSE 반환값m
END AS 별칭
사용 예시
회원테이블에서 회원번호, 회원명, 주민등록번호, 성별을 조회하시오.
SELECT MEM_ID AS 회원번호,
MEM_NAME AS 회원명,
MEM_REGNO1 || '-' || MEM_REGNO2 AS 주민등록번호,
CASE SUBSTR(MEM_REGNO2,1,1) WHEN '1' THEN '남성'
WHEN '3' THEN '남성'
WHEN '2' THEN '여성'
WHEN '4' THEN '여성'
ELSE '데이터 오류'
END AS 성별
FROM MEMBER
'DB Oracle' 카테고리의 다른 글
[Oracle] ★ 주요 문 형식 (0) | 2024.03.19 |
---|---|
[Oracle] 함수 (0) | 2024.03.13 |
[Oracle] 연산자 - 기타연산자 (0) | 2024.03.12 |
[Oracle] 연산자 - 산술/비교(관계)/논리연산자 (0) | 2024.03.11 |
[Oracle] 날짜/기타자료형, SELECT (4) | 2024.03.08 |