Data Scientist

[MSSQL] 문자열 관련 함수 정리 본문

SQL

[MSSQL] 문자열 관련 함수 정리

Cosmo-JH 2020. 8. 7. 09:57

쿼리 사용중 매우 다양한 문자열 관련 함수를 사용하기 마련이다. 이번 포스팅에서는 문자열 관련 함수를 간략하게 정리하여, 편하게 사용되기를 바란다.

문자열 자르기 (4번째부터 5개)

SELECT SUBSTRING('1234567890', 4, 5) -> '45678'

문자열 / BYTE 길이 확인

SELECT LEN('NothingToUse') -> 12
SELECT DATALENGTH('NothingToUse') -> 12

SELECT LEN('한글형 문자열') -> 7
SELECT DATALENGTH('한글형 문자열') -> 13

대소문자 변환

-- 소문자 -> 대문자
SELECT UPPER('aBcDeF') -> 'ABCDEF'

-- 대문자 -> 소문자
SELECT LOWER('aBcDeF') -> 'abcdef'

정수 아스키 코드 문자 변환

SELECT CHAR(97) -> 'a'

문자열에서 지정한 식의 위치 반환

SELECT CHARINDEX('b', 'abcde') -> 2 (처음부터 탐색)
SELECT CHARINDEX('b', 'abcde', 3) -> 0 (3번째 문자부터 탐색)

문자열의 끝에서부터 지정한 수만큼 문자 반환

SELECT LEFT('1234567890', 3) -> '123'
SELECT RIGHT('1234567890', 3) -> '890'

좌우 공백 제거

SELECT LTRIM('  Data') -> 'Data'
SELECT RTRIM('Data  ') -> 'Data'
SELECT RTRIM(LTRIM('  Data    ')) -> 'Data'

문자열 대체

SELECT REPLACE('abcde', 'e', '2') -> 'abcd2'

문자열 반복

SELECT REPLICATE('abc', 3) -> 'abcabcabc'

문자열 반전

SELECT REVERSE('abcde') -> 'edcba'

공백문자 반환

SELECT 'a' + SPACE(10) + 'e' -> 'a          e' (문자 사이에 10개의 공백문자 발생)

문자열이 숫자면 1 아니면 0을 반환

SELECT ISNUMERIC('30') -> 1
SELECT ISNUMERIC('3z') -> 0

문자열이 날짜형이면 1 아니면 0을 반환

SELECT ISDATE('20200225') -> 1
SELECT ISDATE(GETDATE()) -> 1
SELECT ISDATE('2020123') -> 0
SELECT ISDATE('aa') -> 0