λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’»/ORACLE

[ORACLE] 4일차 : SQLν•¨μˆ˜ (단일행 ν•¨μˆ˜) - 2

by λ”°κΆˆ 2024. 3. 14.

 

λ³€ν™˜ν•¨μˆ˜

λ³€ν•¨ν•¨μˆ˜λŠ” νŠΉμ • 데이터 νƒ€μž…μ„ λ‹€μ–‘ν•œ ν˜•μ‹μœΌλ‘œ 좜λ ₯ν•˜κ³  싢을 κ²½μš°μ— μ‚¬μš©λ˜λŠ” ν•¨μˆ˜. λ³€ν™” ν•¨μˆ˜λŠ” 크게 두 κ°€μ§€ 방식이 μžˆλ‹€. 

  • λͺ…μ‹œμ  데이터 μœ ν˜• λ³€ν™˜ : λ³€ν™˜ ν•¨μˆ˜λ‘œ 데이터 μœ ν˜•μ„ λ³€ν™˜ν•˜λ„λ‘ λͺ…μ‹œν•΄ μ£ΌλŠ” 경우
  • μ•”μ‹œμ (implicitly) 데이터 μœ ν˜• λ³€ν™˜ : λ°μ΄ν„°λ² μ΄μŠ€κ°€ μžλ™μœΌλ‘œ 데이터 μœ ν˜•μ„ λ³€ν™˜ν•˜μ—¬ κ³„μ‚°ν•˜λŠ” κ²½
  • μ•”μ‹œμ (implicitly) ν˜• λ³€ν™˜ : 값을 ν• λ‹Ήν•˜κ±°λ‚˜ μ—°μ‚°ν•  λ•Œ 였라클 μ„œλ²„λŠ” λ‹€μŒκ³Ό 같이 μžλ™μœΌλ‘œ 값을 λ³€ν™˜ν•  수 μžˆλ‹€.

 

ν˜•μ‹λͺ¨λΈ

λ‚ μ§œ μ‹œκ°„ ν˜•μ‹ λ˜λŠ” λ¬Έμžμ—΄μ— μ €μž₯된 숫자 데이터 등을 νŠΉμ • ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜λŠ”λ° μ‚¬μš©ν•˜λŠ” 문자 터널이닀. 

 

λ³€ν™˜ ν•¨μˆ˜ μ’…λ₯˜ 

 

λ³€ν™˜ ν•¨μˆ˜ μ„€λͺ…
TO_CHAR 숫자 ν˜•μ‹ fmtλ₯Ό μ‚¬μš©ν•˜μ—¬ VARCHAR2 데이터 μœ ν˜•μ˜ κ°’μœΌλ‘œ λ³€ν™˜
TO_CHAR λ‚ μ§œν˜• 데이터 νƒ€μž…(DATE, TIMESTAMPλ“±) 데이터 μœ ν˜•μ˜ λ‚ μ§œ/μ‹œκ°„ 간격 값을 VARCHAR2 데이터 μœ ν˜•μ˜ κ°’μœΌλ‘œ λ³€ν™˜. Fmtλ₯Ό μƒλž΅ν•˜λ©΄ DATE 값은 κΈ°λ³Έ λ‚ μ§œ ν˜•μ‹μ˜ κ°’μœΌλ‘œ λ³€ν™˜.
TO_NUMBER NUMBER 데이터 μœ ν˜•μ˜ κ°’μœΌλ‘œ λ³€ν™˜ν•œλ‹€.
TO_DATE char을 DATE 데이터 μœ ν˜•μ˜ κ°’μœΌλ‘œ λ³€ν™˜ν•œλ‹€.
TO_TIMESTAMP char을 TIMESTAMP 데이터 μœ ν˜•μ˜ κ°’μœΌλ‘œ λ³€ν™˜

 

 

NULL κ΄€λ ¨ ν•¨μˆ˜

ν–‰μ˜ 열에 값이 μ—†μœΌλ©΄ 열은 nullμ΄κ±°λ‚˜ null을 ν¬ν•¨ν•œλ‹€κ³  ν•œλ‹€. NOT NULL λ˜λŠ” PRIMARY KEY 무결성 μ œμ•½ 쑰건에 μ˜ν•΄ μ œν•œλ˜μ§€ μ•ŠλŠ” λͺ¨λ“  데이터 μœ ν˜•μ˜ μ—΄μ—λŠ” 널이 λ‚˜νƒ€ λ‚  수 μžˆλ‹€. μ‹€μ œ 값을 μ•Œ 수 μ—†κ±°λ‚˜ 값이 μ˜λ―Έκ°€ μ—†λŠ” 경우 널을 μ‚¬μš©ν•œλ‹€. 길이가 0인 문자 값은 λ„λ‘œ μ²˜λ¦¬ν•œλ‹€. 0이 μ•„λ‹Œ 숫자 값을 λ‚˜νƒ€λ‚΄λ €λ©΄ null을 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€. NULL값을 ν¬ν•¨ν•œ μ—°μ‚°μ˜ 경우 결과값도 NULL이 λœλ‹€.

  μ„€λͺ…
NVL(expr1,expr2) expr1이 null이 μ•„λ‹Œ 경우 expr1을 λ°˜ν™˜ν•˜λ©°, expr1이 null이면 expr2λ₯Ό λ°˜ν™˜ν•œλ‹€. 
NVL2(expr1,expr2,expr3) expr1이 null이 μ•„λ‹Œ 경우 expr2을 λ°˜ν™˜ν•˜λ©°, expr1이 null이면 expr3λ₯Ό λ°˜ν™˜ν•œλ‹€. 
NULLIF(expr1,expr2) expr1κ³Ό expr2λ₯Ό λΉ„κ΅ν•˜μ—¬, λ™μΌν•˜λ©΄ null을 λ°˜ν™˜ν•˜κ³  λ™μΌν•˜μ§€ μ•ŠμœΌλ©΄ ν•¨μˆ˜λŠ” expr1을 λ°˜ν™˜ν•œλ‹€. expr1에 리터널 NULL을 μ§€μ •ν•  수 μ—†λ‹€.
COALESCE(expr [, expr ]...) λͺ©λ‘μ—μ„œ NULL이 μ•„λ‹Œ 첫번쨰 expr을 λ°˜ν™˜ν•œλ‹€. μ΅œμ†Œν•œ 두 개의 ν‘œν˜„μ‹μ„ μ§€μ •ν•΄μ•Ό ν•œλ‹€. λͺ¨λ“  expr λ°œμƒμ΄  λ„λ‘œ ν‰κ°€λ˜λ©΄ NULL을 λ°˜ν™˜λ‹€.