반응형
[MySQL] DECODE함수는 데이터를 원하는 다른 값으로 바꾸어 주는 함수
DECODE함수는 첫 번째 인수를 받아들여 받아들인 내용이 조건1과 일치하면 값1로 조건2와 일치하면 값2로 바꾸어 줍니다.
DECODE(column|표현식, 조건1, value1, 조건2, value2, 조건3, value3,...)
예를 들어
sql> select deptno, DECODE(deptno, 10, '영업부',
20, '기획부',
30, '생산부',
40, '전산부') AS "부서명"
from dept;
이 경우 dept 컬럼의 deptno가 10일경우 '영업부', 20일경우 '기획부', 30일경우 '생산부', 40일경우 '전산부'로 나타내주게 됩니다.
[ Oracle ] DECODE, CASE 조건문
DECODE와 CASE문은 프로그램의 if () else()와 유사합니다.
/*#### Oracel DECODE() 함수 ##### */
DECODE(A컬럼, B, 1,
C, 2,
3)
/* A컬럼이 B와 같을 때 1,
A컬럼이 C와 같을 때 2,
만족하는 조건이 없으면 3 출력 */
DECODE(A컬럼, B,
DECODE(C컬럼, D, 1, 2)
,3)
/*
A컬럼와 B가 같으면 C컬럼와 D를 비교해 같다면 1, 다르다면 2,
A컬럼과 B가 다르면 3
만약 A = B이고 C = D라면, 1을 반환합니다.
만약 A = B이고 C ≠ D라면, 2를 반환합니다.
만약 A ≠ B라면, 3을 반환합니다.
*/
/*#### Oracel CASE 함수 ##### */
CASE A
WHEN B THEN ( 1 )
[WHEN C THEN ( 2 )]
ELSE 출력3
END "컬럼명"
/*
A컬럼의 값이 B일 경우 1을 출력, A컬럼의 값이 C일 경우 2를 출력,
만족하는 조건이 없을 경우 3을 출력,
END로 구문을 마치고 컬럼명을 정해준다.
*/
Examples
이 예제는 값 warehouse_id를 디코딩합니다.
warehouse_id 가 1이면 함수는 'Southlake'를 반환합니다.
warehouse_id 가 2이면 'San Francisco'를 반환합니다.
warehouse_id 가 1, 2, 3, 4가 아니면 함수는 'Non domestic'을 반환합니다.
SELECT product_id,
DECODE (warehouse_id, 1, 'Southlake',
2, 'San Francisco',
3, 'New Jersey',
4, 'Seattle',
'Non domestic') "Location"
FROM inventories
WHERE product_id < 1775
ORDER BY product_id, "Location";
참조: https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/DECODE.html
반응형
'DB관련' 카테고리의 다른 글
SQL Database FTP백업 프로그램 - SQL Server, MySQL 지원 (0) | 2021.04.07 |
---|---|
SymmetricDS 이기종 DB 연동, Mobile의 SQLite도 연동 가능 (0) | 2018.08.23 |
[펌] Static SQL을 위한 무기[1] - Cartesian Product(카테시안 곱) (0) | 2017.11.02 |
eXERD 개인 무료 ERD 프로그램 (5) | 2015.05.15 |
도움이 되셨다면 하트모양의 "♡ 공감"을 눌러주시면 큰 격려가 됩니다.
(로그인하지 않으셔도 가능)
(로그인하지 않으셔도 가능)