728x90

NULLIF

NULLIF ν‘œν˜„μ‹μ€ 두 인수λ₯Ό λΉ„κ΅ν•˜μ—¬ λ™μΌν•œ κ²½μš°μ—λŠ” NULL을 λ°˜ν™˜ν•©λ‹ˆλ‹€.

λ™μΌν•˜μ§€ μ•ŠμœΌλ©΄ 첫 번째 μΈμˆ˜κ°€ λ°˜ν™˜λ©λ‹ˆλ‹€.

이 ν‘œν˜„μ‹μ€ NVL λ˜λŠ” COALESCE ν‘œν˜„μ‹μ˜ μ •λ°˜λŒ€μž…λ‹ˆλ‹€.

 

ERROR: Divide by zero (NULL κ°’μœΌλ‘œ μƒκΈ°λŠ” 였λ₯˜)

NULL κ°’μœΌλ‘œ λ‚˜λˆŒ 경우 Divide by zero μ—λŸ¬λ₯Ό λ§Œλ‚˜κ²Œ λœλ‹€.

이 경우 NULLIF둜 일뢀 ν•΄κ²°ν•  수 μžˆλ‹€.

 

** 연산에 NULL이 μžˆμ„ 경우 λͺ¨λ“  연산은 NULL을 λ°˜ν™˜ν•œλ‹€. <= 이 μ„±μ§ˆμ„ 이용

 

NVL, COALESCE

쿼리가 일뢀 ν•¨μˆ˜ λ˜λŠ” μ—΄μ—μ„œ NULL 값을 λ°˜ν™˜ν•  κ°€λŠ₯성이 μžˆλ‹€λ©΄ NVL ν‘œν˜„μ‹μ„ μ‚¬μš©ν•˜μ—¬ NULL 값을 λ‹€λ₯Έ κ°’μœΌλ‘œ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ SUM 같은 집계 ν•¨μˆ˜λŠ” 평가할 행이 μ—†μœΌλ©΄ 0이 μ•„λ‹Œ NULL 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€. μ΄λ•ŒλŠ” NVL ν‘œν˜„μ‹μ„ μ‚¬μš©ν•˜μ—¬ NULL 값을 700.0으둜 λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€. funds_collectedλ₯Ό ν•©μ‚°ν•œ κ²°κ³ΌλŠ” 485κ°€ μ•„λ‹Œ 1885μž…λ‹ˆλ‹€. NULL 값을 κ°–λŠ” 두 행이 700으둜 λŒ€μ²΄λ˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

λ°˜μ‘ν˜•

'πŸ›’οΈ Database' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[SQL] LEFT, REPLACE, SUBSTRING  (0) 2023.08.21
[SQL] LIKE  (0) 2023.08.20
[SQL] Count ν•¨μˆ˜, Sequel vs SQL  (0) 2023.08.19
Apache Parquet(νŒŒμΌ€μ΄)  (0) 2023.08.14
[μ•Œμ“Έ] Mysql database μ •λ ¬  (0) 2023.07.31
λ‹€ν–ˆλ‹€