[SQL] 함수

1. 문자열 함수

LOWER(문자열)

  • 문자열 소문자로 변경

    UPPER(문자열)

  • 문자열 대문자로 변경

    ASCII(문자)

  • 문자, 숫자를 ASCII로 변경

    CONCAT(문자열1, 문자열2)

  • 문자열1과 문자열 2 합침(||와 같은 기능)

    SUBSTR(문자열, M [,N])

  • 문자열 중에 M부터 N개의 문자 리턴(N이 없으면 M부터 끝까지 리턴)

    LENGTH(문자열)

  • 문자열 개수 리턴

    LTRIM(문자열 [,지정문자])

  • 문자열의 첫 문자부터 지정문자를 제거함(지정문자 생략시 “”공백 제거)

    RTRIM(문자열 [,지정문자])

  • 문자열 제일 마지막부터 지정문자를 제거함(지정문자 생략시 “”공백제거)

    TRIM(지정문자 FROM 문자열)

  • 문자열의 양끝의 지정문자 제거

2. 숫자형 함수

ABS(숫자)

  • 숫자의 절대값 리턴

    SING(숫자)

  • 숫자의 양수, 음수, 0을 구분(결과값 -1 OR 0 OR 1)

    MOD(숫자1, 숫자2)

  • 숫자1/숫자2의 나머지 리턴

    CEIL(숫자)

  • 숫자보다 크거나 같은 최소 정수리턴

    FLOOR(숫자)

  • 숫자봗 작거나 같은 최대정수리턴

    ROUND(숫자 [,M])

  • 숫자를 M+1자리에서 반올림해서 리턴(M의 DEFAULT는 0)

    TRUNC(숫자[,M])

  • 숫자를 M+1자리에서 버림해서 리턴(M의 DEFAULT는0)

    EXP(),POWER(),SQRT(),LOG()

  • 지수, 거듭제곱, 제곱근, 로그값 리턴

3. 날짜형 함수

SYSDATE

  • 현재 날짜, 시각 출력

    EXTRACT(‘YEAR’ FROM d)

  • d 날짜에서 ‘YEAR’(년) 추출(YEAR에 MONTY, DAY 입력가능)

    TO_NUMBER(TO_CHAR(D,’YYYY’))

  • 날짜데이터에서 년도 출력

    TO_NUMBER(TO_CHAR(D,’MM’))

  • 날짜데이터에서 월도 출력

    TO_NUMBER(TO_CHAR(D,’DD’))

  • 날짜데이터에서 일 출력

4. 변환형 함수

TO_NUMBER(문자열)

  • 문자열을 숫자로 변환

    TO_CHAR(숫자|날짜 [,FOMAT])

  • 숫자나 날짜를 주어진 포맷형태로 문자열 타입으로 변환

    TO_DATE(문자열[,FOMAT])

  • 문자열을 주어진 포맷 형태로 날짜타입으로 변환

5.CASE표현

함수의 성질을 가지고 있어 중첨해서 사용할 수 있음

1
2
3
4
CASE
SIMPLE_CASE_EXPRESSION 조건
ESLE 표현절
END
  • 예제)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    --예제1
    SELECT ENAME,
    CASE WHEN SAL>2000
    THEN SAL
    ELSE 2000
    END REVISED_SALARY
    FROM EMP;

    --예제2)
    SELECT LOC,
    CASE LOC
    WHEN 'NEW YORK' THEN 'EAST'
    WHEN 'CHICAGO' THEN 'CENTER'
    ELSE 'ETC'
    END AS AREA
    FROM DEPT;

6.NULL관련함수

연산

NULL+숫자=NULL;(사칙연산 모두 포함)
NULL+문자열=NULL;

NVL(표현식1, 표현식2)

  • 표현식 1 이NULL이면 표현식 2를 출력(두 표현식의 데이터 타입이 같아야함)

    NULLIF(표현식1, 표현식2)

  • 표현식1이 표현식2와 같으면 NULL, 아니면 표현식1 출력

    COALESCE(표현식1,..,표현식N)

  • 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식 리턴,
  • 모든 표현식이 NULL이면 NULLD을 리턴

    NULL과 공집합

    테이블 안에 값이 NULL이면 NULL, 테이블 이 선택안되면 공집합
    공집합을 NULL로 바꾸기 위해 적절한 함수 사용 EX)MAX()

NULLIF

1
2
3
4
--사원 테이블에서 MGR과 7698이 같으면 NULL, 다르면 MGR 표시하라. 

SELECT ENAME, EMPNO, MGR, NULLIF(MGR, 7698) NUIF
FROM EMP;

COALESCE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
--사원테이블에서 커미션을 1차선택값, 급여를 2차 선택값으로 선택하되 
--두 칼럼 모두 NULL이면 NULL로 표시

SELECT ENAME, COMM, SAL, COALESCE(COMM, SAL) COAL
FROM EMP;

--다른방법
SELECT ENAME, COMM, SAL
CASE WHEN COMM IS NOT NULL
THEN COMM
ELSE (CASE WHEN SAL IS NOT NULL
THEN SAL
ELSE NULL
END)
END COAL
FROM EMP;
# sql

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×