database/sql

[SQL] 단일행 함수의 종류와 사용

테토 2022. 3. 11. 14:25
반응형
종류 내용 함수의 예
문자형 함수 문자를 입력하면 문자나 숫자 값을 반환한다. LOWER, UPPER, SUBSTR/SUBSTRING, LENGTH/LEN, LTRIM, RTRIM, TRIM, ASCII
숫자형 함수 숫자를 입력하면 숫자 값을 반환한다.  ABS,MOD, ROUND, TRUNC, SIGN, CHR/CHAR, CEIL/CEILING, FLOOR, EXP, LOG, LN, POWER, SIN, COS, TAN
날짜형 함수 DATE 타입의 값을 연산한다. SYSDATE/GETDATE, EXTRACT/DATEPART, TO_NUMBER(TO_CHAR(d, 'YYYY'|'MM'|'DD')) / YEAR|MONTH|DAY
변환형 함수 문자, 숫자, 날짜형 값의 데이터 타입을 변환한다.  TO_NUMBER, TO_CHAR, TO_DATE / CAST, CONVERT
NULL 관련 함수 NULL을 처리하기 위한 함수  NVL / ISNULL, NULLIF, COALESCE
'/'가 있는 경우 Oracle / SQL Server 함수

 

 

문자형 함수

 

문자형 함수 함수 설명
LOWER(문자열) 문자열의 알파벳 문자를 소문자로 바꾸어준다.
UPPER(문자열) 문자열의 알파벳 문자를 대문자로 바꾸어 준다.
ASCII(문자) 문자나 숫자를 ASCII 코드 번호로 바꾸어 준다.
CHR/CHAR
(ASCII번호)
ASCII 코드 번호를 문자나 숫자로 바꾸어 준다.
CONCAT
(문자열1, 문자열2)
Oracle, My SQL에서 유효한 함수이며 문자열1과 문자열2를 연결한다. 합성연산자 '| |'(Oracle)이나 '+'(SQL Server)와 동일하다.
SUBSTR/SUBSTRING (문자열, m[, n ]) 문자열 중 m위치에서 n개의 문자 길이에 해당하는 문자를 돌려준다. n이 생략되면 마지막 문자까지이다.
LENGTH/LEN
(문자열)
문자열의 개수를 숫자값으로 돌려준다.
LTRIM
(문자열[, 지정문자])
문자열의 첫 문자부터 확인해서 지정 문자가 나타나면 해당 문자를 제거한다. (지정문자가 생략되면 공백 값이 디폴트)
SQLServer에서는 LTRIM 함수에 지정문자를 사용할 수 없다. 즉, 공백만 제거할 수 있다.
RTRIM
(문자열[, 지정문자])
문자열의 마지막 문자부터 확인해서 지정 문자가 나타나면 해당 문자를 제거한다. (지정문자가 생략되면 공백 값이 디폴트)
SQLServer에서는 RTRIM 함수에 지정문자를 사용할 수 없다. 즉, 공백만 제거할 수 있다.
TRIM
([leading|trailing|both]
지정문자 FROM 문자열)
문자열에서 머리말, 꼬리말, 또는 양쪽에 있는 지정 문자를 제거한다. (leading|trailing|both가 생략되면 both가 디폴트)
SQL Server에서는 TRIM 함수에 지정문자를 사용할 수 없다. 즉, 공백만 제거할 수 있다.

 

숫자형 함수

 

숫자형 함수 함수 설명
ABS(숫자) 숫자의 절대값을 돌려준다.
SIGN(숫자) 숫자가 양수인지, 음수인지 0인지를 구별한다.
MOD(숫자1, 숫자2) 숫자1을 숫자2로 나누어 나머지 값을 리턴한다.
MOD 함수는 % 연산자로 대체 가능
CEIL/CEILING(숫자) 숫자보다 크거나 같은 최소 정수를 리턴한다. (올림하여 정수로 리턴)
FLOOR(숫자) 숫자보다 작거나 같은 최소 정수를 리턴한다. (내림하여 정수로 리턴)
ROUND(숫자 [, m]) 숫자를 소수점 m자리까지 반올림하여 리턴. 
m의 디폴트는 0
TRUNC(숫자 [, m]) 숫자를 소수점 m자리까지 버림하여 리턴. 
m의 디폴트는 0
SQL Server에서는 존재하지 않음
SIN,  COS, TAN.. 숫자의 삼각함수 값을 리턴한다.
EXP(),POWER(),SQRT(),LOG(),LN() 숫자의 지수, 거듭제곱, 제곱근, 자연로그 값을 리턴한다.

 

날짜형 함수

 

날짜형 함수 함수 설명
SYSDATE 
/ GETDATE()
현재 잘짜와 시각을 출력한다.
EXTRACT('YEAR'|'MONTH'|'DAY' from d)
/ DATEPART('YEAR'|'MONTH'|'DAY',d)
날짜 데이터에서 년/월/일(시간/분/초) 데이터를 출력할 수 있다.
TO_NUMBER(TO_CHAR(d,'YYYY'))
/ YEAR(d),
TO_NUMBER(TO_CHAR(d,'MM'))
/ MONTH(d),
TO_NUMBER(TO_CHAR(d,'DD'))
/ DAY(d)
날짜 데이터에서 년/월/일 데이터를 출력할 수 있다.
Oracle EXTRACT YEAR/MONTH/DAY 옵션이나 
SQL Server DEPART YEAR/MONTH/DAY 옵션과 같은 기능이다.

 

변환형 함수

 

변환형 함수 - ORACLE 함수 설명
TO_NUMBER(문자열) alphanumeric 문자열을 숫자로 변환한다.
TO_CHAR(숫자|날짜[, FORMAT]) 숫자나 날짜를 주어진 FORMAT의 문자열 타입으로 변환한다.
TO_DATE(문자열 [,FORMAT]) 문자열을 주어진 FORMAT의 날짜 타입으로 변환한다.
변환형 함수 - SQL Server 함수 설명
CAST (expression AS data_type [(length)] expression을 목표 데이터 유형으로 변환한다.
CONVERT (data_type [(length)], expression [,style]) expression을 목표 데이터 유형으로 변환한다.

 

NULL 관련 함수

 

일반형 함수 함수 설명
NVL(표현식1, 표현식2) /
ISNULL(표현식1, 표현식2)
표현식1의 결과값이 NULL이면 표현식 2의 값을 출력한다.
단. 표현식1과 표현식2의 결과 데이터 타입이 같아야 한다.
NULLIF(표현식1, 표현식2) 표현식1이 표현식2와 같으면 NULL, 같지 않으면 표현식1을 리턴한다.
COALESCE(표현식1, 표현식2,....) 임의의 기수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다.
모든 표현식이 NULL이라면 NULL을 리턴한다.
반응형