
DB: Decode(Oracle), IF(MySQL)
2019, Mar 28
Decode๋?
ํ๋ค
๋ผ๋ ๋จ์ด์ ๋ป์ ๊ฐ์ก์ผ๋ฉฐ ์ค๋ผํด์์๋ง ์ง์ํ๋ ํจ์๋ก์จSELECT
๋ฌธ ๋ด์ ๋น๊ต์ฐ์ฐ์ ์ํํด์ฃผ๋ ํจ์์ด๋ค.DECODE
๋ด ์ ์ธ๋ ์ธ์์ ์์ ๋ฐ๋ผ ์ฌ์ฉ ๋ฐฉ์์ด ๋ค๋ฅด๋ค.
Decode๋ ์ ์ธํ ์ธ์์ ๊ฐ์์ ๋ฐ๋ผ ์ฌ์ฉ๋ฐฉ์์ด ๋ฌ๋ผ์ง๋ค. ์ธ์ ๊ฐ์์ ๋ฐ๋ฅธ ์ฌ์ฉ ๋ฐฉ์์ ์๋์ ๊ฐ๋ค.
์ธ์ ์ : 3๊ฐ(A,B,C)
/*
A์ B๊ฐ ๊ฐ๋ค๋ฉด ๊ฒฐ๊ณผ๋ C
A์ B๊ฐ ๋ค๋ฅด๋ฉด ๊ฒฐ๊ณผ๋ null
*/
SELECT DECODE(A,B,C) FROM DUAL;
์ธ์ ์ : 4๊ฐ(A,B,C,D)
/*
A์ B๊ฐ ๊ฐ๋ค๋ฉด ๊ฒฐ๊ณผ๋ C
A์ B๊ฐ ๋ค๋ฅด๋ฉด ๊ฒฐ๊ณผ๋ D
*/
SELECT DECODE(A,B,C,D) FROM DUAL;
์ธ์ ์ : 5๊ฐ(A,B,C,D,E) 5๊ฐ๋ถํฐ ์ธ์๋น๊ต๊ฐ ๋ฌ๋ผ์ง A-B, A-D
/*
A์ B๊ฐ ๊ฐ๋ค๋ฉด ๊ฒฐ๊ณผ๋ C
A์ D๊ฐ ๊ฐ๋ค๋ฉด ๊ฒฐ๊ณผ๋ E
๋๋ค ์๋๋ฉด null
*/
SELECT DECODE(A,B,C,D,E) FROM DUAL;
์ธ์ ์ : 6๊ฐ(A,B,C,D,E,F) 5๊ฐ๋ถํฐ ์ธ์๋น๊ต๊ฐ ๋ฌ๋ผ์ง A-B, A-D
/*
A์ B๊ฐ ๊ฐ๋ค๋ฉด ๊ฒฐ๊ณผ๋ C
A์ D๊ฐ ๊ฐ๋ค๋ฉด ๊ฒฐ๊ณผ๋ E
๋๋ค ์๋๋ฉด F
*/
SELECT DECODE(A,B,C,D,E,F) FROM DUAL;
ํท๊ฐ๋ฆด ์ ์๋ Decode
์ต์ง๋ก ์ธ์ฐ์ง๋ง๊ณ ์์ฃผ ์จ๋จน์ด๋ณด์.