[DB.SQL] 단일 행 함수

HwangBBang·2023년 2월 7일
0

SQL

목록 보기
1/9

단일 행 함수의 종류

#문자 함수

LOWER()

UPPER()

#숫자 함수

ROUND()

TRUNC()

MOD(M,N)

ABS()

FLOOR()

CEIL

SIGN

POWER(M,N)

#날짜 함수

#변환 함수

#일반 함수


NVL(par1, par2)

NULL 값을 다른 값으로 변경할 때 사용함

par1NULL이라면 par2를 반환
par1NULL아니라면 par1를 반환

select ename, sal, comm, NVL(comm,0) from emp;
-- comm 가 NULL 이라면 0
-- comm 가 NULL 이 아니라면 comm


NVL2(par1, par2, par3)

NULL 값을 다른 값으로 변경할 때 사용함

par1NULL이라면 par3를 반환
par1NULL아니라면 par2를 반환

select ename, comm, NVL2(comm,'[등록O]'||comm, '[등록X]')
from emp;
-- comm 가 NULL 이라면 par3 실행 : '[등록X]'
-- comm 가 NULL 이 아니라면 par2 실행 : '[등록O]'||comm


NULLIF(par1, par2)

par1 값과 par2가 같을 때, NULL 을 반환
par1 값과 par2가 같지 않을 때, par1 을 반환

select ename,job, nullif(job,'SALESMAN')
from emp;

-- job 이 'SALESMAN' 이라면 Null 반환  
-- job 이 'SALESMAN' 이 아니라면 job 을 반환


COALESCE(par1,par2, , , parN)

par1 부터 parN까지 순서대로 조회해서
처음으로 등장하는 NULL 이 아닌 값을 반환
모든 parNULL이라면 NULL 반환

select comm,sal,9999,coalesce( comm ,sal,9999)
from emp;
-- comm 이 NULL 이 아니라면 comm 반환
-- comm 이 NULL 이 라면 sal 확인 
-- sal 이 NULL 이 아니라면 sal 반환 
-- sal 이 NULL 이라면 9999 확인 
-- 9999 는 NULL 이 아니므로 9999 반환 


DECODE(val, comp1, res1, comp2, res2..., default)

select= 조건을 걸어 사용할 때 사용

c.f) where절은 필터링 되어 표시 또한 select 절에 사용 불가함

select ename, sal, decode(sal,
3000,'A팀',
5000,'B팀',
'C팀')
from emp;
-- sal = 3000 이라면 'A팀'
-- sal = 5000 이라면 'B팀'
-- 그 외의 sal 값은 'C팀'


CASE

select 에 다양한 조건을 걸어 사용할 때 사용

case
when 조건 then 반환값
when 조건 then 반환값
when 조건 then 반환값
else 디폴트반환값 end

c.f) DECODE=만 사용 할 수 있는 반면 , CASE 는 다양한 조건을 걸어서 사용 할 수 있다.

select ename, sal, 
case when sal < 3000 then 'A팀'
when sal > 4000 then 'B팀'
else 'C팀' end
from emp;

profile
https://hwangbbang.tistory.com/

0개의 댓글