본문 바로가기

IT

MSSQL | 자주 쓰는 문자 함수 정리

.

RTRIM LTRIM SUBSTRING RIGHT LEFT LEN DATALENGTH CHARINDEX REPLACE REPLICATE REVERSE SPACE LOWER / UPPER / ASCII

 

 

 

 

  • RTRIM : 오른쪽 공백 없애기
  • LTRIM : 왼쪽 공백 없애기

 

ex. RTRIM('12121212        ') --> 결과 : 12121212

     LTRIM('       111333222') --> 결과 : 111333222

 

Oracle 함수로 사용할 때는 두번째 인수로 없애고 싶은 문자를 지정할 수 있음.

ex. RTRIM('abcdefg', 'c') --> 결과 : abdefg

 

 

 

  • SUBSTRING('문자열', m [, n ]) : 문자열 중 m 위치에서 n개의 문자 길이에 해당하는 문자를 리턴. n이 생략되면 마지막 문자까지.
  • RIGHT('문자열', n) : 문자열 중 오른쪽부터 n개의 문자 길이에 해당하는 문자 자르기
  • LEFT('문자열', n) : 문자열 중 왼쪽부터 n개의 문자 길이에 해당하는 문자 자르기

ex. SUBSTRING('123456789', 3, 4) --> 결과 : 3456

     RIGHT('123456789', 4)           --> 결과 : 6789

     LEFT('123456789', 4)             --> 결과 : 1234

 

 

  • LEN : 문자열의 개수를 숫자값으로 리턴. 단어 사이의 공백 포함하지만 단어 뒤 공백은 제외됨. 
  • DATALENGTH : 문자열의 바이트수 리턴. 모든 공백을 포함.

ex. 유니코드 사용할 경우 (유니코드는 모든 문자가 2byte)

     LEN(N'SQL Expert')              --> 결과 : 10

     DATALENGTH(N'SQL Expert') --> 결과 : 20

 

 

 

  • CHARINDEX('특정 문자', '문자열') : 문자열에서 특정 문자의 위치값을 리턴

ex. CHARINDEX('34','1234567890') --> 결과 : 3

 

※ 검색 시작 위치를 세번째 인수로 지정할 수 있다.

ex. CHARINDEX('34','1234567890', 5) --> 결과 : 0 

     ==> 인덱스가 5인 5부터 검색을 시작하므로 34를 찾을 수 있다. 그래서 0을 리턴함.

 

 

  • REPLACE('대상 문자열', '문자열A, '문자열B') : 대상 문자열에서 문자열A에 해당되는 모든 항목을 찾아 문자열B로 바꾸기
// MSSQL 문자 함수 테스트
SELECT REPLACE('abcdefghicde','cde','xxx')

 

--> 결과 

 

 

 

  • REPLICATE('문자열', n) : 문자열을 n번 반복

ex. REPLICATE('문자열', 3) --> 결과 : 문자열문자열문자열

 

 

 

 

  • REVERSE : 문자열을 반대로 리턴
// MSSQL 문자 함수 테스트
SELECT REVERSE('abc')

 

--> 결과

 

 

  • SPACE(n) : 스페이스를 n번 추가

ex. SELECT 'ADD' + SPACE(10) + 'SPACE' --> 결과 : ADD          SPACE

 

 

 

  • LOWER : 영문 문자열을 소문자로 리턴
  • UPPER : 영문 문자열을 대문자로 리턴

ex. LOWER('Hong') --> 결과 : hong

     UPPER('Hong') --> 결과 : HONG

 

※ 한글인 문자열에는 아무 변화 없음.

 

 

  • ASCII : 문자의 ASCII 코드값 리턴 
// MSSQL 문자 함수 테스트
SELECT ASCII('1'), ASCII('A') 

 

--> 결과