ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL - ๋‹จ์ผ ํ–‰ ํ•จ์ˆ˜(๋ฌธ์ž/์ˆซ์ž/๋‚ ์งœ/๋ณ€ํ™˜/์กฐ๊ฑด)
    DATABASE 2020. 7. 19. 21:26

     

    ๐ŸŽฏ SQL์˜ ๋‹จ์ผํ–‰ ํ•จ์ˆ˜์ธ ๋ฌธ์žํ•จ์ˆ˜, ์ˆซ์žํ•จ์ˆ˜, ๋‚ ์งœํ•จ์ˆ˜, ๋ณ€ํ™˜ํ•จ์ˆ˜, ์กฐ๊ฑดํ•จ์ˆ˜๋ฅผ ์•Œ์•„๋ณธ๋‹ค.

     

     

     

    ๋‹จ์ผ ํ–‰ ํ•จ์ˆ˜

     

    ์ž…๋ ฅ์ฒ˜๋ฆฌ๋˜๋Š” ํ–‰์˜ ๊ฐœ์ˆ˜์™€ ์ถœ๋ ฅ ์ฒ˜๋ฆฌ๋˜๋Š” ํ–‰์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋™์ผํ•˜๋‹ค.

    14๋ช… ์ž๋ฃŒ ์žˆ๋‹ค๋ฉด ํ•จ์ˆ˜๊ฐ€ 14๋ช…์— ๋‹ค ์ ์šฉ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

     

     

     

    ๋ฌธ์žํ•จ์ˆ˜

     

    INITCAP ํ•จ์ˆ˜ : INITCAP('ORACLE SQL')    >>    Oracle Sql

    ๊ฐ ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ, ๋‚˜๋จธ์ง€๋Š” ์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ

     

     

    LOWER ํ•จ์ˆ˜ : LOWER('ORACLE SQL')    >>    oracle sql

    ๋ชจ๋“  ๋ฌธ์ž์—ด์„ ์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ.

     

     

    UPPER ํ•จ์ˆ˜ : UPPER('Oracle Sql')    >>    ORACLE SQL

    ์†Œ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ.

     

     

    CONCAT ํ•จ์ˆ˜ : CONCAT('Oracle', 'Sql')    >>    OracleSql

    ๋‘๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ํ•ฉ์„ฑ. || ์—ฐ๊ฒฐ์—ฐ์‚ฐ์ž๋ž‘ ๊ฐ™์€ ์—ญํ• . ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋‘๊ฐœ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅ. ๋‘๊ฐœ๋งŒ ๋ถ™์ผ ์ˆ˜ ์žˆ๋‹ค.

     

     

    LPAD ํ•จ์ˆ˜ : LAPAD('MILLER', 10, '*')    >>    ****MILLER

    ๊ธ€์ž๋ฅผ ์ด n์ž๋ฆฌ๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ์˜†์œผ๋กœ ๋ฐ€์–ด์ค€ ๋‹ค์Œ ์™ผ์ชฝ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ผ์›Œ๋„ฃ๋Š”๋‹ค. ์ฃผ๋ฏผ๋ฒˆํ˜ธ์— ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹. ์™ผ์ชฝ๋ถ€ํ„ฐ๋ผ์„œ LEFT PAD์ž„. ์‚ฝ์ž…ํ•  ๋ฌธ์ž๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ๊ณต๋ฐฑ์œผ๋กœ ์ฑ„์›Œ์ง„๋‹ค.

     

     

    RPAD ํ•จ์ˆ˜ : LAPAD('MILLER', 10, '*')    >>    MILLER****

    ์˜ค๋ฅธ์ชฝ์— ๋ฌธ์ž์—ด์„ ๋ผ์›Œ๋„ฃ๋Š” ์—ญํ• 

     

     

    SUBSTR ํ•จ์ˆ˜: SUBSTR( '12345', 3, 2)    >>    3, 4

    ๋ฌธ์ž์ค‘์—์„œ ํŠน์ •๋ถ€๋ถ„๋งŒ ๋ฝ‘์•„์คŒ

    ์ด ๋ฌธ์ž์—ด์—์„œ m ์œ„์น˜๋ถ€ํ„ฐ n๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ๋ฝ‘์•„์ค˜.

    ๋ช‡๋…„๋„์— ์ž…์‚ฌํ–ˆ๋Š”์ง€ ๋…„๋„ ๊ฐ€์ ธ์™€์„œ ๊ตฌ๊ตฌ์ ˆ์ ˆ ์„ค๋ช…์จ๋ณด์ž.

     

     

    ์ฃผ๋ฏผ๋ฒˆํ˜ธ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ช‡๊ฐ€์ง€ ๋ฐฉ๋ฒ•

    ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ์ถ”์ถœํ•˜๊ณ  ๋‚จ์€ ๋’ท๋ถ€๋ถ„์— ์—ฐ๊ฒฐ์—ฐ์‚ฐ์ž๋กœ ํ…์ŠคํŠธ๋ฅผ ๋ถ™์—ฌ์ค€๋‹ค.

     

    SUBSTR ์™€ RPAD ํ•จ์ˆ˜ ์‚ฌ์šฉ

    (์ด ๋ฒˆํ˜ธ์˜ ์ฒซ๋ฒˆ์งธ ์ž๋ฆฌ๋ถ€ํ„ฐ 8๊ฐœ๋ฅผ ๋ฝ‘์•„๋ผ),์ „์ฒด๊ธธ์ด 14๋งŒ๋“ค๊ณ , ์ˆซ์ž ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฐ€๊ณ  ๋‚จ์€์ž๋ฆฌ *๋กœ ์ฑ„์›Œ๋ผ

     

    SUBSTR๊ณผ REPLACE ํ•จ์ˆ˜

    ์ฃผ๋ฏผ๋ฒˆํ˜ธ์—์„œ 9๋ฒˆ์งธ ์ž๋ฆฌ๋ถ€ํ„ฐ ๊ทธ ๋’ค ๋ชจ๋‘๋ฅผ ******์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

    ์‹œ์ž‘ ์œ„์น˜๊ฐ’๋งŒ ์ง€์ •ํ•˜๊ณ  ๋ฐ˜ํ™˜๋ฐ›์„ ๋ฌธ์ž์—ด ๊ฐœ์ˆ˜๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ทธ ์œ„์น˜๋ถ€ํ„ฐ์˜ ๋ชจ๋“  ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

    ์œ„์น˜๊ฐ’์ด ์Œ์ˆ˜๋ฉด ๊ฑฐ๊พธ๋กœ ๋’ค์—์„œ๋ถ€ํ„ฐ ๋ช‡๋ฒˆ์งธ์ธ์ง€ ์ฐพ๋Š”๋‹ค

     

     

    LENGTH ํ•จ์ˆ˜ : LENGTH('ORACLE')    >>    6

    ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ์ˆซ์ž๊ฐ’์œผ๋กœ ๋ฆฌํ„ด

    ์ด๋ฆ„์˜ ๊ธธ์ด๊ฐ€ ๊ธด ์‚ฌ๋žŒ๋ถ€ํ„ฐ ๋‚ด๋ฆผ์ฐจ์ˆœ ํ•ด์ฃผ์„ธ์š”.

     

     

    REPLACE ํ•จ์ˆ˜ : REPLACE( 'JACK and JUE', 'J', 'BL ')    >>     BLACK and BLUE

    ํŠน์ • ๋ฌธ์ž์—ด ๋ฐ”๊ฟ”์ฃผ๊ธฐ

    EMP ํ…Œ์ด๋ธ”์—์„œ JOB์—์„œ 'A'๋ฅผ '$'๋กœ ๋ฐ”๊พธ์–ด ์ถœ๋ ฅ

     

     

    INSTR ํ•จ์ˆ˜ : INSTR('MILLER', 'L', 1, 2)    >>    4

    ๋ฌธ์ž์—ด์ด ํฌํ•จ๋˜์–ด์žˆ๋Š”์ง€ ์กฐ์‚ฌํ•ด ๋ฌธ์ž์—ด์˜ ์œ„์น˜๋ฅผ ๋ฆฌํ„ด. ์ง€์ •ํ•œ ๋ฌธ์ž์—ด ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์œผ๋ฉด 0์„ ๋ฆฌํ„ด.

    ๋ฐ€๋Ÿฌ๋ผ๋Š” ๋‹จ์–ด์—์„œ, L์„ ์ฐพ๋Š”๋ฐ, ์ฒซ๋ฒˆ์งธ ์ž๋ฆฌ๋ถ€ํ„ฐ ์ฐพ์•„, ๊ทผ๋ฐ 2๋ฒˆ์งธ L์ด ์–ด๋Š์ž๋ฆฌ์— ์žˆ๋‚˜ ๋ฐ˜ํ™˜ํ•ด๋ผ.

    m๊ณผ n ์€ ์˜ต์…˜์œผ๋กœ ์ƒ๋žต๊ฐ€๋Šฅ. ์ƒ๋žตํ•˜๋ฉด ์ฒซ์งธ์ž๋ฆฌ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ฒซ๋ฒˆ์งธ๋กœ ๊ฒ€์ƒ‰๋˜๋Š” ๋ฌธ์ž์˜ ์œ„์น˜๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋œ๋‹ค.

     

     

    LTRIM ํ•จ์ˆ˜ : LTRIM('MILLER', 'M')    >>    ILLER

    ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ฌธ์ž๋ถ€ํ„ฐ ํ™•์ธํ•ด์„œ ์ง€์ • ๋ฌธ์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ๋™์•ˆ ํ•ด๋‹น ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐ. ์ง€์ • ๋ฌธ์ž๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๊ณต๋ฐฑ๋ฌธ์ž๊ฐ€ ๊ธฐ๋ณธ๊ฐ’. ์™ผ์ชฝ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ LEFT TRIM ์ด๋‹ค.

     

     

    RTRIM ํ•จ์ˆ˜ : RTRIM('MILLER', 'R')    >>    MILLE

    ๋ฌธ์ž์—ด์˜ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋ถ€ํ„ฐ ํ™•์ธํ•ด์„œ ์ง€์ •๋ฌธ์ž๊ฐ€ ๋‚˜ํƒ€๋‚  ๋•Œ๊นŒ์ง€ ํ•ด๋‹น ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.



    TRIM ํ•จ์ˆ˜

    ๋ฌธ์ž์—ด์—์„œ ์™ผ์ชฝ(leading) ์˜ค๋ฅธ์ชฝ(trailing) ๋‘˜๋‹ค(both) ์ œ๊ฑฐ. ์ด ์„ธ๊ฐœ๊ฐ€ ์ƒ๋žต๋˜๋ฉด both ๊ฐ€ ๊ธฐ๋ณธ.

    ์ œ๊ฑฐํ•  ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณต๋ฐฑ์ด ์ œ๊ฑฐ๋จ.

    LTRIM RTRIM ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ TRIM ์—์„œ๋Š” FROM ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

     

     

     

    ์ˆซ์žํ•จ์ˆ˜

     

    CEIL ํ•จ์ˆ˜ : CEIL(10.1)    >>    11

    ์˜ฌ๋ฆผํ•จ์ˆ˜. ์ฃผ์–ด์ง„ ์ˆซ์ž๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ์ตœ์†Œ ์ •์ˆ˜ ๋ฆฌํ„ด

     

     

    FLOOR ํ•จ์ˆ˜ : FLOOR(10.23)    >>    10

    ์†Œ์ˆ˜์  ๋ฐ‘์ž๋ฆฌ ๋ฒ„๋ฆฌ๊ธฐ. ์ฃผ์–ด์ง„ ์ˆซ์ž๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ตœ๋Œ€ ์ •์ˆ˜ ๋ฆฌํ„ด.

     

     

    MOD ํ•จ์ˆ˜ : MOD(10, 3)    >>    1

    ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜. ๋งค๊ฐœ๋ณ€์ˆ˜ 2๊ฐœ, ์ฃผ์–ด์ง„ ์ˆซ์ž๋ฅผ N์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋‚จ์€ ๊ฐ’์„ ๋ฐ˜ํ™˜.

    ๋Œ€ํ‘œ์ ์œผ๋กœ ํ™€์ง ๊ตฌํ•˜๊ธฐ, ๋ฐฐ์ˆ˜ ๊ตฌํ•˜๊ธฐ์— ์‚ฌ์šฉ๋จ.

    0์œผ๋กœ ๋‚˜๋ˆŒ๊ฒฝ์šฐ ์›๋ž˜ ๊ฐ’ ๊ทธ๋Œ€๋กœ๋ฅผ ๋ฐ˜ํ™˜.

     

     

    ROUNDํ•จ์ˆ˜ : ROUND(123.456, 2)    >>    123.46

    ์ˆซ์ž๋ฅผ ์†Œ์ˆ˜์  N์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ. ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ 0(์†Œ์ˆ˜์  ๋ฐ€๊ณ  ๋ฐ˜์˜ฌ๋ฆผ)

    N์ด ์–‘์ˆ˜์ด๋ฉด ์†Œ์ˆ˜์ž๋ฆฌ, ์Œ์ˆ˜์ด๋ฉด ์†Œ์ˆ˜์ ์„ ๊ธฐ์ค€์œผ๋กœ ์•ž์œผ๋กœ๊ฐ€์„œ ์ •์ˆ˜์ž๋ฆฌ๋ฅผ ๋ฐ˜์˜ฌ๋ฆผํ•œ๋‹ค.

     

     

    TRUNC ํ•จ์ˆ˜ : TRUNC(456.789, -1)    >>    450

    ์†Œ์ˆ˜์  ๊ธฐ์ค€์œผ๋กœ ๋ช‡๋ฒˆ์งธ ์ž๋ฆฌ๋ฅผ ๋ฒ„๋ฆฌ๋Š” ํ•จ์ˆ˜. ์Œ์ˆ˜์ด๋ฉด ์ •์ˆ˜์ž๋ฆฌ์—์„œ ๋ฒ„๋ฆผ.



    SIGN ํ•จ์ˆ˜ : SIGN (100)    >>    1

    ์ฃผ์–ด์ง„ ์ˆซ์ž๊ฐ€ ์–‘์ˆ˜๋ฉด 1๋ฐ˜ํ™˜, ์Œ์ˆ˜๋ฉด -1 ๋ฐ˜ํ™˜, 0=0์ธ์ง€ ํŒ๋‹จ

    ์›”๊ธ‰์ด 1500๋ณด๋‹ค ํฐ ์‚ฌ์›๋งŒ ์ถœ๋ ฅํ•˜๋Š” ์‹œํ€„๋ฌธ์„ ๋ถ€๋“ฑํ˜ธ ์—ฐ์‚ฐ ์‚ฌ์šฉ์•ˆํ•˜๊ณ  ์ž‘์„ฑ ๊ฐ€๋Šฅ.

    ์›”๊ธ‰์—์„œ 1500 ๋งˆ์ด๋„ˆ์Šค ํ–ˆ์„ ๋•Œ ์–‘์ˆ˜๋ฉด 1500๋ณด๋‹ค ํฐ ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์—(์•„ํ•˜!) where์ ˆ ์กฐ๊ฑด์‹์— sign ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

     

     

     

    ๋‚ ์งœํ•จ์ˆ˜

    ์˜ค๋ผํด ๋‚ ์งœ์— ๋Œ€ํ•ด ์—ฐ์‚ฐ. MONTH_BETWEEN ์ œ์™ธํ•˜๊ณ ๋Š” DATEํ˜•์„ ๋ฆฌํ„ดํ•œ๋‹ค.

    ์˜ค๋ผํด ๋‚ ์งœ๋ฐ์ดํ„ฐ ๊ธฐ๋ณธ ํฌ๋งท : RR/MM/DD

     

     

    RR๊ณผ YY์˜ ์ฐจ์ด?

     

    YY : ์ž…๋ ฅ๋‚ ์งœ๋ฅผ ์˜ค๋ผํด ์„œ๋ฒ„์˜ ํ˜„์žฌ ๋‚ ์งœ ์„ธ๊ธฐ์™€ ๋™์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌ.

    95๋…„๋„ ์ž๋ฃŒ ์ฐพ๊ณ  ์‹ถ์–ด์„œ YY=95๋ฅผ ์ž…๋ ฅํ•ด๋„ 2095๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค

    RR : ์˜ค๋ผํด์ด ์ž๋™์œผ๋กœ ๋ฐ˜ํ™˜๋…„๋„๋ฅผ ๊ฒฐ์ •. ์ •ํ™•๋„ UP!

     

     

    SYSDATE ํ•จ์ˆ˜

    ์˜ค๋ผํด ์‹œ์Šคํ…œ์˜ ํ˜„์žฌ ๋‚ ์งœ๋ฅผ ๋ฐ˜ํ™˜

    SYSDATE+1์€ ๋‚ ์งœ+1์ด ๋œ๋‹ค.

    ๋ฌธ์ œ ) EMP ํ…Œ์ด๋ธ”์—์„œ ํ˜„์žฌ๊นŒ์ง€ ๊ทผ๋ฌด์ผ ์ˆ˜๊ฐ€ ๋ช‡์ฃผ ๋ช‡์ผ ์ธ๊ฐ€๋ฅผ ์ถœ๋ ฅ. ๋‹จ ๊ทผ๋ฌด ์ผ์ˆ˜๊ฐ€ ๋งŽ์€ ์‚ฌ๋žŒ ์ˆœ์œผ๋กœ ์ถœ๋ ฅ — ์†Œ์ˆ˜์ ์„ ๊น”๋”ํ•˜๊ฒŒ ์ž˜ ์ฒ˜๋ฆฌํ•ด์ฃผ๊ธฐ

     

    EMP ํ…Œ์ด๋ธ”์—์„œ 10๋ฒˆ ๋ถ€์„œ ์ค‘ ํ˜„์žฌ๊นŒ์ง€์˜ ๊ทผ๋ฌด ์›”์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์ถœ๋ ฅ

     

     

    ADD_MONTHS ํ•จ์ˆ˜

    ๊ฐœ์›”์ˆ˜๋ฅผ ๋”ํ•˜๊ณ  ๋บ„์ˆ˜์žˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋‚ ์งœํ˜•.

    EMP ํ…Œ์ด๋ธ”์—์„œ 10๋ฒˆ ๋ถ€์„œ ์ค‘ ์ž…์‚ฌ ์ผ์ž๋กœ๋ถ€ํ„ฐ 5๊ฐœ์›”์ด ์ง€๋‚œ ํ›„ ๋‚ ์งœ ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์ถœ๋ ฅ

     

     

    NEXT_DAY ํ•จ์ˆ˜

    ์ง€์ •๋œ ๋‚ ์งœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋Œ์•„์˜ค๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์š”์ผ์— ํ•ด๋‹นํ•˜๋Š” ๋‚ ์งœ๋ฅผ ๋ฐ˜ํ™˜.

    ์š”์ผ ๋Œ€์‹  ์ˆซ์ž๋ฅผ ์จ๋„ ๋˜๋Š”๋ฐ ์ผ์š”์ผ๋ถ€ํ„ฐ 1๋กœ ์‹œ์ž‘ํ•œ๋‹ค.

     

     

    LAST_DAY ํ•จ์ˆ˜

    ์›”์˜ ๋งˆ์ง€๋ง‰ ๋‚ ์งœ ๊ณ„์‚ฐ.

     

     

    ROUND ํ•จ์ˆ˜

    ๋‚ ์งœ๋ฅผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋…„๋„ ๋˜๋Š” ์›”๋กœ ๋ฐ˜์˜ฌ๋ฆผ ํ•  ์ˆ˜ ์žˆ๋‹ค

     

     

    TRUNC ํ•จ์ˆ˜

    ๋‚ ์งœ๋ฅผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋…„๋„ ๋˜๋Š” ์›”๋กœ ๋ฒ„๋ฆผํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์›” ๋ฒ„๋ฆผ ํ•˜๋ฉด 1์ผ๋กœ ์„ธํŒ…, ์—ฐ ๋ฒ„๋ฆผํ•˜๋ฉด 1์›” 1์ผ๋กœ ์„ธํŒ….

     

     

     

    ๋ณ€ํ™˜ํ•จ์ˆ˜

    ๋ฐ์ดํ„ฐํƒ€์ž…์„ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ํ•จ์ˆ˜

     

     

    ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๋ณ€ํ™˜ ๋ฐฉ๋ฒ•

     

    ๋ฌต์‹œ์  ํ˜• ๋ณ€ํ™˜

    ์šฐ๋ฆฌ๊ฐ€ ์•ˆ๋ฐ”๊ฟ”์ค˜๋„ ์˜ค๋ผํด์—์„œ ์ž๋™์ ์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š”๊ฒŒ ์žˆ๋Š”๋ฐ ๊ถŒ์žฅ์•ˆํ•จ

    ์˜ค๋ผํด์ด ๋ฌธ์ž๋กœ ์ž…๋ ฅ๋œ 7900์„ ์ž๋™์œผ๋กœ ์ˆซ์ž๋กœ ํ˜•๋ณ€ํ™˜ํ•ด์„œ ์ฐพ์•„์ค€๋‹ค.

     

    ๋ช…์‹œ์  ํ˜• ๋ณ€ํ™˜

    ๋‚ด๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ๋ช…์‹œ์ ์œผ๋กœ ํ•จ์ˆ˜์ด์šฉ.

     

     

    TO_CHAR : TO_CHAR(HIREDATE, 'YYYY')    >>    2018

    ๋ฌธ์ž๋กœ ํ˜•๋ณ€ํ™˜. ๋ฐ์ดํ„ฐ ํ˜• ๋ณ€ํ™˜์‹œ ์ถ”๊ฐ€๋กœ ์ถœ๋ ฅ ํ˜•์‹์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ถœ๋ ฅํ˜•์‹์€ ๋ฐ˜๋“œ์‹œ ๋”ฐ์˜ดํ‘œ ์•ˆ์—

     

     

    TO_CHAR(์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ, ์›ํ•˜๋Š” ์ถœ๋ ฅ ํ˜•ํƒœ)

     

    ์ž…์‚ฌ๋‚ ์งœ๊ฐ€ 9์›”์ธ ์‚ฌ์›๋“ค๋งŒ ๋ณด๊ธฐ

     

    ํ˜•์‹์€ ์ž‘์€๋”ฐ์˜ดํ‘œ๋กœ ์‹œ์ž‘, ์ž‘์€ ๋”ฐ์˜ดํ‘œ๊ฐ€ ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ๊ทธ ์•ˆ์—๋Š” ํฐ ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•ด์คŒ.

     

    EMP ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ 20์ค‘ ๊ธ‰์—ฌ ์•ž์— $๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ  3์ž๋ฆฌ๋งˆ๋‹ค ,๋ฅผ ์ถœ๋ ฅ

     

     

    TO_NUMBER ํ•จ์ˆ˜ : TO_NUMBER('1234')    >>    1234

    ์ˆซ์žํ˜•ํƒœ์˜ ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜

     

     

    TO_DATE ํ•จ์ˆ˜ : TO_DATE('20200719', 'YYYYMMDD')    >>    2020/07/19

    ๋‚ ์งœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์„ ๋ช…์‹œ๋œ ๋‚ ์งœ๋กœ ๋ณ€ํ™˜

     

     

     

    ์ผ๋ฐ˜ํ•จ์ˆ˜(์กฐ๊ฑดํ•จ์ˆ˜)

     

    CASE ํ•จ์ˆ˜

    ์กฐ๊ฑด์ด ๋ฐ˜๋“œ์‹œ ์ผ์น˜ํ•˜์ง€ ์•Š์•„๋„ ๋ฒ”์œ„ ๋ฐ ๋น„๊ต๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜

    ์—ฌ๋Ÿฌ ์กฐ๊ฑด์— ๋Œ€ํ•ด ์„ ํƒ์ ์œผ๋กœ ์‹œํ€„๋ฌธ์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜

    -- ์กฐ๊ฑด์ด ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ๋ฌธ๋ฒ•(๋™๋“ฑ์กฐ๊ฑด)
    
    SELECT ์ปฌ๋Ÿผ,
    	CASE ์ปฌ๋Ÿผ WHEN ๋น„๊ต๊ฐ’1 THEN ๊ฒฐ๊ณผ๊ฐ’1
    		  WHEN ๋น„๊ต๊ฐ’2 THEN ๊ฒฐ๊ณผ๊ฐ’2
    		  ELSE ๊ฒฐ๊ณผ๊ฐ’n
    	END
    FROM ํ…Œ์ด๋ธ”;

    SELECT ์ปฌ๋Ÿผ๋ถ€๋ถ„์— CASE๋ฅผ ์“ด๋‹ค.

    ์ง€์ •ํ•œ ์ปฌ๋Ÿผ์—์„œ WHEN ~ THEN ์กฐ๊ฑด์„ ๊ณ„์† ๊ฒ€์‚ฌํ•˜๊ณ 

    ์—ฌ๊ธฐ์— ํ•ด๋‹น ์•ˆ๋ ๊ฒฝ์šฐ ELSE๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  END

    END ๋’ค์— ์ปฌ๋Ÿผ ๋ณ„์นญ์„ ์“ธ ์ˆ˜ ์žˆ๋Š”๋ฐ, "๋ณ„์นญ" ๋’ค์— ๋”ฐ๋กœ ์‰ผํ‘œ๊ฐ€ ๋ถ™์ง€ ์•Š๋Š” ๊ฑฐ ์ฃผ์˜ํ•˜๊ธฐ.

    ์ง์—…๋ณ„ ๋ณด๋„ˆ์Šค ์ฐจ๋“ฑ์ง€๊ธ‰

     

    ์ƒ๋Ÿฌ๋ฆฌ ๊ธฐ์ค€์— ๋”ฐ๋ผ ๋“ฑ๊ธ‰ ๋ถ€์—ฌํ•˜๊ธฐ

     

    -- ์กฐ๊ฑด์ด ๋ฐ˜๋“œ์‹œ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ๋ฌธ๋ฒ•(๋ถ€๋“ฑ์กฐ๊ฑด)
    
    SELECT ์ปฌ๋Ÿผ,
    	CASE WHEN ์กฐ๊ฑด1 THEN ๊ฒฐ๊ณผ๊ฐ’1
      	     WHEN ์กฐ๊ฑด2 THEN ๊ฒฐ๊ณผ๊ฐ’2
    	     ELSE ๊ฒฐ๊ณผ๊ฐ’n
    	END
    FROM ํ…Œ์ด๋ธ”;

    ๋ถ€๋“ฑ๋น„๊ต ์—ฐ์‚ฐ์ž(=๋ง๊ณ  ๋‹ค๋ฅธ ๋‚˜๋จธ์ง€ ๋น„๊ต์—ฐ์‚ฐ์ž๋“ค, BETWEEN, IN, ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ WHEN ์•ˆ์— ์ปฌ๋Ÿผ๋ช…์ด ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— CASE ๋‹ค์Œ์— ์ปฌ๋Ÿผ์„ ๋˜ ์ ์ง€ ์•Š๋Š”๋‹ค.

     

     

    DECODEํ•จ์ˆ˜

    ์กฐ๊ฑด์ด ๋ฐ˜๋“œ์‹œ ์ผ์น˜ํ•ด์•ผ ๋˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” ํ•จ์ˆ˜.

    SELECT ์ปฌ๋Ÿผ,
    	DECODE(์ปฌ๋Ÿผ, ๋น„๊ต๊ฐ’1, ๊ฒฐ๊ณผ๊ฐ’1,
    		     ๋น„๊ต๊ฐ’2, ๊ฒฐ๊ณผ๊ฐ’2,
    	  	     ...
    		     ๊ธฐ๋ณธ๊ฒฐ๊ณผ๊ฐ’)
    FROM ํ…Œ์ด๋ธ”;

     

    -- ์›”๊ธ‰์— ๋”ฐ๋ผ ๋ณด๋„ˆ์Šค ์ฐจ๋“ฑ ์ง€๊ธ‰ํ•˜๊ธฐ์œ„ํ•œ ์‹œํ€„๋ฌธ ๋งŒ๋“ค๊ธฐ

    -- ์›”๊ธ‰ 2400์ด๋ฉด ์›”๊ธ‰์˜ 30%, 1700์ด๋ฉด ์›”๊ธ‰์˜ 20%๋ฅผ ๋ณด๋„ˆ์Šค๋กœ ์ง€๊ธ‰๋ฐ›๊ณ 

    -- ์œ„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์€ ๋‚˜๋จธ์ง€ ์‚ฌ์›์€ ์›”๊ธ‰์˜ 100%๋ฅผ ๋ณด๋„ˆ์Šค๋กœ ์ง€๊ธ‰๋ฐ›๋Š”๋‹ค. ๐Ÿ‘‡๐Ÿ‘‡

    -- DECODE ๋ฒ„์ „
    
    SELECT ENAME, SAL,
    	DECODE(SAL, 2400, SAL*0.3,
    	            1700, SAL*0.2,
    		  SAL) ๋ณด๋„ˆ์Šค
    FROM EMP
    ORDER BY 2 DESC;
    -- CASE ๋ฒ„์ „
    
    SELECT ENAME, SAL,
    	CASE SAL WHEN 2400 THEN SAL*0.3
    		 WHEN 1700 THEN SAL*0.2
    	         ELSE SAL
    	         END ๋ณด๋„ˆ์Šค
    FROM EMP
    ORDER BY 2 DESC;
    

     

     

     

    ์˜ˆ์ œ ํ’€์–ด๋ณด๊ธฐ

     

    1. ์‚ฌ์› ํ…Œ์ด๋ธ”์—์„œ ์˜์—…์‚ฌ์›๊ณผ ๋น„์˜์—…์‚ฌ์›์„ ๊ตฌ๋ณ„ํ•˜์—ฌ ์ถœ๋ ฅํ•ด๋ณด๊ธฐ

    ๋จผ์ € ๋‚˜์˜ ์˜ค๋‹ต

     

    ์ง€๋‚œ๋ฒˆ ๋งํ–ˆ์ง€๋งŒ ๋™๋“ฑ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด null ๊ฐ’์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ณ ์‹ถ์œผ๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ์•ˆ๋‚˜์˜จ๋‹ค.

    NULL์€ 0๊ณผ ๋‹ฌ๋ผ์„œ, ์•„์˜ˆ ๊ฐ’์„ ๊ฐ€์ง€์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค!

    ๋”ฐ๋ผ์„œ DECODE๊ฐ€ ์•„๋‹Œ CASE ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 

    ๐Ÿ‘‡๐Ÿ‘‡

    ์ •๋‹ต!

     

     

    2. ๋ถ€์„œ ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ ์œ„์น˜๋ฅผ ๋ฏธ๊ตญ์˜ ๋™๋ถ€, ์ค‘๋ถ€, ์„œ๋ถ€๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•ด๋ณด๊ธฐ

    ๊ตณ

     

     

    ๐Ÿ˜œ NEXT : SQL ๋‹ค์ค‘ ํ–‰ ํ•จ์ˆ˜-๊ทธ๋ฃนํ•จ์ˆ˜ ๊ณต๋ถ€ํ•˜๊ธฐ

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

๊ฐœ๋ฐœ๊ณต๋ถ€