Post

[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.