DB: Decode(Oracle), IF(MySQL)

    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 ์–ต์ง€๋กœ ์™ธ์šฐ์ง€๋ง๊ณ  ์ž์ฃผ ์จ๋จน์–ด๋ณด์ž.