[SQL] 내장 함수 정리
수치 함수 (Numeric Functions)
ROUND
- 숫자를 가장 가까운 정수 또는 지정된 소수 자릿수로 반올림
- 두번째 변수 없이 쓰면 소수점 아래 1의 자리에서 반올림해서 정수가 된다.
1
2
ROUND(123.456, 1) --결과: 123.5
ROUND(123.45) --결과: 123
ABS
- 숫자의 절대값을 반환
1
ABS(-123.45) --결과: 123.45
CEIL
- 숫자를 올림해서 가장 가까운 정수로 반환
1
CEIL(123.45) --결과: 124
FLOOR
- 숫자를 내림헤서 가장 가까운 정수로 반환
1
FLOOR(123.45) --결과: 123
문자열 함수 (String Functions)
CONCAT
- 두 개 이상의 문자열을 연결
1
CONCAT('Hello, ', 'World!') --결과: 'Hello, World!'
SUBSTR
- 구조: SUBSTR(문자열, 시작 위치, [길이])
- [길이]는 선택적인 매개변수이며, 생략할 경우 시작 위치부터 문자열의 끝까지를 의미한다.
1
substr('abcdefg', 4) --결과: `'defg'
LENGTH 또는 LEN:
- 문자열의 길이(문자 수)를 반환
1
LENGTH('Hello') --결과: 5
UPPER:
- 문자열의 모든 문자를 대문자로 변환
1
UPPER('Hello') --결과: 'HELLO'
LOWER:
- 모든 문자를 소문자로 변환
1
LOWER('Hello') --결과: 'hello'
TRIM:
- 문자열의 앞뒤에서 지정된 문자들을 제거
- 기본적으로 공백을 제거
1
TRIM(' Hello ') --결과: 'Hello'
LTRIM과 RTRIM:
- 각각 문자열의 왼쪽(앞)과 오른쪽(뒤)에서 공백을 제거
1
2
LTRIM(' Hello') --결과: 'Hello'
RTRIM('Hello ') --결과: 'Hello'
REPLACE:
- 문자열 내에서 지정된 문자열을 다른 문자열로 대체
1
REPLACE('Hello World', 'World', 'SQL') --결과: 'Hello SQL'
SUBSTRING 또는 SUBSTR:
- 문자열에서 특정 부분을 추출
1
SUBSTRING('Hello World', 1, 5) --결과: 'Hello'
CHARINDEX 또는 INSTR:
- 한 문자열이 다른 문자열 내에서 처음 나타나는 위치를 반환
- SQL 서버에서는 CHARINDEX, 오라클이나 MySQL에서는 INSTR 사용
1
CHARINDEX('World', 'Hello World') --결과: 7
날짜/시간 함수 (Date/Time Functions)
NOW
- 현재 날짜와 시간을 반환
1
NOW() --결과: '2024-06-12 10:23:45' (현재 시간)
CURDATE
- 현재 날짜를 반환
1
CURDATE() --결과: '2024-06-12' (현재 날짜)
DATEADD
- 지정된 날짜에 일정 기간을 더하거나 뺀 날짜를 반환
1
DATEADD(day, 5, '2024-06-12') --결과: '2024-06-17'
DATEDIFF
- 두 날짜 간의 차이를 일 단위로 반환
1
DATEDIFF('2024-06-12', '2024-06-10') --결과: 2
변환 함수 (Conversion Functions)
CAST
- 데이터 타입을 다른 타입으로 변환
- ANSI SQL 표준의 일부로, 대부분의 SQL 데이터베이스 시스템에서 지원
1
CAST('123' AS INT) --결과: 123
CONVERT
- 데이터 타입을 다른 타입으로 변환
- SQL 서버에서 주로 사용, MySQL에서도 지원
1
CONVERT(INT, '123') --결과: 123
논리 함수 (Logical Functions)
COALESCE
- 인수 중 첫 번째로 NULL이 아닌 값을 반환
1
COALESCE(NULL, 'Hello', 'World') --결과: 'Hello'
NULLIF
- 두 인수가 같으면 NULL을 반환하고, 그렇지 않으면 첫 번째 인수를 반환
1
NULLIF(123, 123) --결과: NULL
CASE WHEN ~ THEN
- 조건에 따라 다른 값을 반환하는 조건문
1
2
3
4
5
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
ELSE 'F'
END
This post is licensed under CC BY 4.0 by the author.