[SQL] SQL 단일행 함수

JUNBEOM PARK·2022년 3월 7일

💡 SQL

목록 보기
4/7
post-thumbnail

🤔 단일행 함수 ?

하나의 ROW 당 하나의 결과값을 리턴하는 함수


📗 문자 함수

문자열로 구성되어 있는 함수에 사용할 수 있는 함수

1. INITCAP, LOWER, UPPER 함수

INITCAP() // 첫 문자만 대문자 변환
LOWER() // 전체 소문자 변환
UPPER() // 전체 대문자 변환



2. LENGTH, LENGTHB 함수

LENGTH() // 글자 수를 리턴 하는 함수
LENGTHB() // 글자의 바이트 수를 리턴 하는 함수



3. SUBSTR 함수

원하는 문자를 추출하는 목적, 문자열의 일부 데이터만 필요한 경우 사용한다.

SUBSTR(원본 문자열 혹은 컬럼, 시작위치, 추출개수)



4. INSTR 함수

어떤 특정 위치 전까지,특정 위치 부터 문자들을 추출할 목적으로 사용한다.

INSTR(추출 문자열 또는 컬럼, 찾고자 하는 문자열, 시작위치, N번째 만나는 번호)



5. LPAD, RPAD 함수

문자열 앞, 혹은 뒤에 특정 문자열을 삽입하고 싶은 경우 사용한다.
LPAD는 왼쪽, RPAD는 오른쪽

LPAD(추출 문자열 또는 컬럼, 자리수, '채울 문자'
RPAD(추출 문자열 또는 컬럼, 자리수, '채울 문자'



6. TRIM 함수

문자 제거를 담당하는 함수이지만 조립하기위해 자주 사용한다.

LTRIM(추출 문자열 또는 컬럼, '제거할 문자')
RTRIM(추출 문자열 또는 컬럼, '제거할 문자')
TRIM(추출 문자열 또는 컬럼) //공백 제거



7. REPLCAEM TRANSLATE 함수

문자를 치환해주는 함수

REPLACE(문자열 또는 컬럼, 찾을 문자열, 바꿀 문자열) // 단어 단위의 치환
TRANSLATE(문자열 또는 컬럼, 찾을 문자열, 바꿀 문자열) // 문자의 1:1 치환



📘 숫자 함수

1. ABS 함수

절대값을 반환하는 함수

SELECT -10, ABS(-10) FROM DUAL; // -10, 10



2. ROUND 함수

특정 자리수에서 반올림하여 리턴한다.
지정한 숫자가 양수이면 소수점 아래, 음수이면 소수점 위를 의미한다. 생략 되면 반올림해서 정수를 반환

SELECT ROUND('1234.567', 1),
		ROUND('1234.567', -1),
        ROUNT('1234.567')
FROM DUAL; // 1234.6, 1230, 1235



3. TRUNC 함수

ROUND 함수와 유사하며 특정 자리수를 잘라내고 반환한다. (버림)

SELECT ROUNT('1234.567', 1) FROM DUAL; // 1234.5



4. CEIL 함수

주어진 숫자보다 크거나 같은 정수 중 최소값을 반환

SELECT CEIL(2), CEIL(2.1) FROM DUAL; // 2, 3



5. MOD 함수

숫자 1을 숫자 2로 나눈 나머지값

SELECT MOD(1,3),
	  MOD(2,3) FROM DUAL; // 1, 2



📙 날짜 함수

1. SYSDATE 함수

현재 날짜를 반환하는 함수

SELECT SYSDATE FROM DUAL; // 22/03/07



2. MONTHS_BETWEEN 함수

날짜와 날짜 사이의 개월 수를 구해주는 함수

MONTHS_BETWEEN(날짜1, 날짜2)



3. ADD_MONTHS 함수

특정 개월 수를 더한 날짜를 구하는 함수

ADD_MONTHS(날짜, 더할 개월 수)



4. NEXT_DAY 함수

해당 날짜를 기준으로 최초로 도래하는 요일의 날짜를 반환

NEXT_DAY(날짜, 요일)



📕 형 변환 함수

1. TO_CHAR 함수

날짜형 혹은 숫자형을 문자형으로 변환 한다.

SELECT SYSDATE, TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL;
 
SYSDATE  TO_CHAR(SY
-------- ----------
18/04/19 2018-04-19

2. TO_DATE

문자형을 날짜형으로 변환 한다.

SELECT TO_DATE('2020/02/04') FROM DUAL; // 20/02/04

3. TO_NUMBER

문자형을 숫자형으로 변환 한다.

SELECT TO_NUMBER('512') FROM DUAL // 512
profile
DB 엔지니어👍

0개의 댓글