๊ด€๋ฆฌ ๋ฉ”๋‰ด

bom's happy life

[SQL ์ฝ”ํ…Œ] 12์„ธ ์ดํ•˜์ธ ์—ฌ์ž ํ™˜์ž ๋ชฉ๋ก ์ถœ๋ ฅํ•˜๊ธฐ(IFNULL/NULL๊ฐ’ ๋Œ€์ฒด/์น˜ํ™˜) ๋ณธ๋ฌธ

Algorithm๐Ÿ’Œ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[SQL ์ฝ”ํ…Œ] 12์„ธ ์ดํ•˜์ธ ์—ฌ์ž ํ™˜์ž ๋ชฉ๋ก ์ถœ๋ ฅํ•˜๊ธฐ(IFNULL/NULL๊ฐ’ ๋Œ€์ฒด/์น˜ํ™˜)

bompeach 2023. 8. 12. 16:16

Q)

PATIENT ํ…Œ์ด๋ธ”์—์„œ 12์„ธ ์ดํ•˜์ธ ์—ฌ์žํ™˜์ž์˜ `ํ™˜์ž์ด๋ฆ„, ํ™˜์ž๋ฒˆํ˜ธ, ์„ฑ๋ณ„์ฝ”๋“œ, ๋‚˜์ด, ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์กฐํšŒ` ํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, 'NONE'์œผ๋กœ ์ถœ๋ ฅ์‹œ์ผœ ์ฃผ์‹œ๊ณ  ๊ฒฐ๊ณผ๋Š” ๋‚˜์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•˜๊ณ , ๋‚˜์ด ๊ฐ™๋‹ค๋ฉด ํ™˜์ž์ด๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด์ฃผ์„ธ์š”.

 

A)

-- MYSQL
SELECT PT_NAME,PT_NO,GEND_CD,AGE, IFNULL(TLNO, 'NONE') //์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ NULL์ด๋ฉด ๋ฌธ์ž์—ด NONE์œผ๋กœ.
FROM PATIENT
WHERE AGE < 13
AND GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME ASC

 


 

<MYSQL์—์„œ ์นผ๋Ÿผ์ด NULL์ผ ๋•Œ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋Œ€์ฒด/์น˜ํ™˜ํ•˜๊ธฐ>

 

IFNULL(ex1, ex2)
-> ex1์ด NULL ์ด๋ฉด ex2๋ฅผ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ex1์„ ๋ฐ˜ํ™˜
-> ์˜ค๋ผํด์—์„œ๋Š” NVL( )

 

SELECT IFNULL(ํ•„๋“œ๋ช…, '์น˜ํ™˜๊ฐ’') FROM TABLE๋ช…
-- ์˜ˆ์ œ

-- NULL์„ ์ˆซ์ž 0์œผ๋กœ ์น˜ํ™˜
SELECT IFNULL(NULL, 0);
-- NULL์„ ๋ฌธ์ž์—ด --๋กœ ์น˜ํ™˜(๋ฌธ์ž์—ด์€ ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ๊ธฐ)
SELECT IFNULL(NULL, '--');

 

.

.

 

NULL๊ฐ’์„ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•

 

1. IF๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ

SELECT IFNULL(์นผ๋Ÿผ๋ช…, '๋„๋„'), IF(์นผ๋Ÿผ๋ช… IF NULL, '๋„๋„๋„', '๋„์ด์•„๋‹˜') FROM ํ…Œ์ด๋ธ”๋ช…;

 

2. CASE WHEN ๊ตฌ๋ฌธ ์‚ฌ์šฉ

SELECT
    CASE WHEN IHIDNUM IS NULL THEN '๋„๋„๋„' 
    WHEN IHIDNUM ='33' THEN '33'
    ELSE '๋„์ด ์•„๋‹˜'
    END AS IHIDNUM
    FROM comtngnrlmber ;

 

.

.

.

 

์ฐธ๊ณ  > MYBATIS์—์„œ NULLL์ฒดํฌํ•˜๊ธฐ

 

์ „์ž์ •๋ถ€ํ‘œ์ค€ํ”„๋ ˆ์ž„์›Œํฌ(eGovFramework)์—์„œ๋Š” myBatis์—์„œ NULL์„ ์ฒดํฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค.

์ฟผ๋ฆฌ๋ฌธ์—์„œ NULL๊ฐ’ ์ฒดํฌํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ฆฌ๊ฐ™์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ!

SELECT * FROM TABLE_NAME WHERE 1=1
<if test="@egovframework.com.cmm.util.EgovMybaitsUtil@isNotEmpty(str)">AND
   STR =#{str}
</if>

๋ฐ‘์˜ ๊ตฌ๋ฌธ์ด๋ž‘ ๊ฐ™๋‹ค!

<if test='str == null or str == ""'>
</if>

 

 

 

.

.

.

 

https://web-obj.tistory.com/484๋ธ”๋กœ๊ทธ์ฐธ๊ณ