MS-SQL 문자열을 자르기



1. 기본 - 문자열 자르는 함수는 SUBSTRING 입니다(시작번호의 경우 MS-SQL은 1부터 시작입니다)

   → SELECT SUBSTRING([문자열], [시작자리번호], [자를문자수])


2. 응용특정 문자열 뒤로 자르고 싶을 경우 

WITH TestTable AS 

(

  SELECT '[첫째]쿼리 가지고 놀기.' COL1

  UNION 

  SELECT '[둘째]원하는 데이터만.' COL1

  UNION 

  SELECT '[셋째]다양한 방법 선택은..' COL1

 )


SELECT SUBSTRING(COL1, CHARINDEX(']', COL1, 1) + 1, LEN(COL1)) COL1

FROM TestTable


[결과]




3. 응용 단계별 

CHARINDEX함수 : [~부터 찾을 자리] 에서 부터 검색하여 [찾을 문자]가 들어있는 처음 발견되는 위치의 자릿수

                          를 리턴한다

  → CHARINDEX([찾을 문자], [문자열], [~부터 찾을 자리])

SELECT 'A' 'GUBUN', CHARINDEX(']', 'ABCD]EFG]HIJKLM]N' , 1) AS 'VALUE'

UNION

SELECT 'B' 'GUBUN', CHARINDEX(']', 'ABCD]EFG]HIJKLM]N' , 6) AS 'VALUE'


[결과]



- LEN함수 : 문자열 자릿 수 구하기

   LEN('문자열') 

SELECT 'A' 'GUBUN', LEN('ABCD') AS 'VALUE'

UNION

SELECT 'B' 'GUBUN', LEN('  ABCD') AS 'VALUE'

UNION

SELECT 'D' 'GUBUN', LEN('ABCD  ') AS 'VALUE'

UNION

SELECT 'D' 'GUBUN', LEN('  ABCD  ') AS 'VALUE'


[결과]




SUBSTRING

SELECT 'A' 'GUBUN',SUBSTRING('ABCDE', 1,1) AS 'VALUE'

UNION

SELECT 'A' 'GUBUN',SUBSTRING('ABCDE', 1,2) AS 'VALUE'


[결과]



여기까지

MSSQL 문자열 자르는 방법이였습니다



Posted by JOY [바가지]

댓글을 달아 주세요