[SQL]-(033) NULL 값 대신 다른 데이터 출력하기
[Reference] 초보자를 위한 SQL 200제
[SQL 문법]
NULL 값 대신 다른 값을 출력할 수 있다.
SELECT ename, comm, NVL(comm, 0)
FROM emp
[예시]
# 오라클 연동 및 접속
import pandas as pd
import cx_Oracle
dsn=cx_Oracle.makedsn('localhost',1521,'orcl')
db=cx_Oracle.connect('scott','tiger')
cursor=db.cursor()
# SQL 문법
cursor.execute("""
SELECT ename, comm, NVL(comm, 0)
FROM emp
""")
row=cursor.fetchall()
colname=cursor.description
col=[]
for i in colname:
col.append(i[0])
# pandas를 사용한 데이터 프레임 형식으로 변환
emp=pd.DataFrame(row,columns=col)
print(emp)
[결과]
ENAME COMM NVL(COMM,0)
0 KING NaN 0
1 BLAKE NaN 0
2 CLARK NaN 0
3 JONES NaN 0
4 MARTIN 1400.0 1400
5 ALLEN 300.0 300
6 TURNER 0.0 0
7 JAMES NaN 0
8 WARD 500.0 500
9 FORD NaN 0
10 SMITH NaN 0
11 SCOTT NaN 0
12 ADAMS NaN 0
13 MILLER NaN 0
[복습] 2023-02-01
NVL2 함수를 이용해 comm이 NULL인 사원은 sal+comm을 NULL이 아닌 사원은 sal 대체하여 출력 가능하다.
SELECT ename, sal, comm, NVL2(comm, sal+comm, sal)
FROM emp
WHERE job IN ('SALESMAN', 'ANALYST')
[결과]
ENAME SAL COMM NVL2(COMM,SAL+COMM,SAL)
0 MARTIN 1250.0 1400.0 2650
1 ALLEN 1600.0 300.0 1900
2 TURNER 1500.0 0.0 1500
3 WARD 1250.0 500.0 1750
4 FORD 3000.0 NaN 3000
5 JACK 3500.0 NaN 3500
Leave a comment