SQL 복습 (2) 단일행 함수

넙데데맨·2022년 12월 7일
0
post-custom-banner

함수

단일행 함수

복수개의 데이터가 존재할 시 한번에 한개의 행을 처리해 한개의 결과를 구하는 함수

복수행 함수

복수개의 데이터가 존재할 시 복수개의 행을 처리하여 한개의 결과를 구하는 함수

단일행 함수

문자함수

INITCAP 입력 값의 첫 글자만 대문자 변환
LOWER 입력 값 전부 소문자로 변환
UPPER 입력 값 전부 대문자로 변환
LENGTH 입력 값 문자열의 길이 값 출력
LENGTHB 입력 값 문자열의 길이 바이트 값 출력
CONCAT 두 문자를 결합해서 출력

SUBSTR 주어진 문자에서 특정 문자만 추출
SUBSTR('ABC',1,2) 왼쪽에서 1번째~ 2번째
SUBSTR('ABC',-1,2) 오른쪽에서 1번째~ 2번째
SUBSTRB 주어진 문자에서 특정 바이트만 추출
SUBSTRB('한글',1,2)
INSTR 주어진 문자에서 특정 문자의 위치 추출
INSTR('a-b-c','-',1,2) => 4 / 문자열에서 1번째에서 시작해 2번째 -가 나오는 자리
INSTR('a-b-c','-',-1,2) => 2 / 오른쪽에서 시작해서 1번째에서 시작 2번째 -가 나오는 자리
INSTRB 주어진 문자에서 특정 문자의 위치 바이트 값 추출

LPAD 주어진 문자열에서 왼쪽으로 특정문자 채우기
LPAD('abc', 10, ' ') / 문자의 총 자리수 10개일때 오른쪽 정렬 후 왼쪽 공백 ' '로 채우기
RPAD 주어진 문자열에서 오른쪽으로 특정문자 채우기
LTRIM 주어진 문자열에서 왼쪽의 특정문자 삭제
RTRIM 주어진 문자열에서 오른쪽의 특정문자 삭제
REPLACE 주어진 문자열에서 오른쪽의 특정문자를 삭제함
REPLACE(ename, substr(ename,1,2),'&&')
ename에서 ename의 1번째부터 2번째글자까지 '&&'으로 치환

문자

ROUND 주어진 숫자를 반올림 후 출력
TRUNC 버림한 후 출력(자릿 수 설정 가능)
MOD 나누기 한 후 나머지 값 출력
CEIL 가장 근접한 큰 정수 출력
FLOOR 가장 근접한 작은 정수 출력
POWER 주어진 수의 제곱 출력 POWER(3,4) => 81

날짜

SYSDATE 시스템의 현재 날짜, 시간
MONTHS_BETWEEN 두 날짜 사이의 개월 수
MONTHS_BETWEEN(날짜A,날짜B) A-B의 결과
ADD_MONTHS 주어진 날짜에 개월 더하기
ADD_MONTHS(날짜,B) 날짜에 B개월 더하기
NEXT_DAY 주어진 날짜 기준 다음 요일 날짜 구하기
NEXT_DAY(SYSDATE,'MON')
LAST_DAY 주어진 날짜 기준 지난 요일 날짜 구하기
ROUND 주어진 날짜 반올림
TRUNC 주어진 날짜 버림

일반 함수

NVL NULL 값을 만나면 다른 값으로 치환해서 출력하는 함수
NVL(컬럼, 치환 값)
NVL2
NVL2(컬럼, NULL이 아닐 시 값, NULL일 시 값)
DECODE ORACLE에서만 사용되는 함수
IF 문과 비슷한 기능을 하는 함수
DECODE(A,B,값1)
A가 B일 경우 값1을 출력한다.
DECODE(A,B,값1,값2)
A가 B일 경우 값1을 출력한다. 아닐 시 값2를 출력
DECODE(A,B,값1,C,값2,값3)
A가 B이면 값1, C이면 값2, 둘다 아니면 값3을
DECODE문은 if문 처럼 중첩 역시 가능하다.
CASE CASE 문과 비슷하게 사용한다.
CASE 조건 WHEN 결과1 THEN 값1
WHEN 결과2 THEN 값2
ELSE 값3
END "컬럼명"
조건에 해당하는 값이 결과1과 같다면 값1이 출력되며 컬럼명은 컬럼명으로 출력된다.

정규식 함수

^(캐럿) 해당 문자로 시작하는 라인 출력
$(달러) 해당 문자로 끝나는 라인 출력
. 1 character
* 모든 이라는 뜻 글자수가 0일수도 있음 [a-z]*
[] 해당 문자에 해당하는 한 문자 [pP]
[^] 해당 문자에 해당하지 않는 한 문자 [^a-m]

profile
차근차근
post-custom-banner

0개의 댓글