본문 바로가기
MS SQL

MS SQL_문자열 관련 함수 정리2(문자열 합치기, 문자열 자르기, 문자열 치환, 공백 제거)

by 디디찐 2022. 9. 22.
반응형

문자열 자르기, 특정 문자 위치 찾기, 문자열 치환, 공백 제거 관련 함수는 아래 링크로 확인해주세요.😊

 

MS SQL_문자열 관련 함수 정리1(문자열 자르기, 특정 문자 위치 찾기, 문자열 치환, 공백 제거)

1. 문자열 자르기 함수 (SUBSTRING, LEFT, RIGHT) SUBSTRING (문자열, 시작위치, 길이) 문자열을 원하는 시작위치부터 길이만큼 잘라주는 함수 LEFT  (문자열, 길이) : 문자열을 왼쪽부터 원하는 ..

jjin-todo.tistory.com

 

1. 문자열 합치기 함수 (CONCAT,  STUFF + FOR XML PATH)

1)CONCAT(문자열1,문자열2,....) 문자열을 합쳐주는 함수로 더하기 연산자와 같은 역할

   CONCAT_WS(구분자,문자열1,문자열2,....) 구분자로 문자열을 합쳐준다

 

✔CONCAT, CONCAT_WS  예시

SELECT CONCAT('만두가', ' 먹고싶다') AS 'CONCAT 결과'
SELECT '만두가' + ' 먹고싶다'AS '+ 연산자 결과'


SELECT CONCAT( '나는야',(SELECT ' ' + ENAME
                          FROM EMP
                         WHERE EMP_ID ='JIN') ) AS 'SELECT 한 문자열 합치기 결과'
                         
SELECT CONCAT_WS('/','짜장면','짬뽕','볶음밥') AS 'CONCAT_WS 결과'

 

✔CONCAT, CONCAT_WS  예시 결과

2)STUFF  XML FOR PATH 활용하여 여러 행의 컬럼 값을 하나의 문자열로 합쳐줄 수 있다.

 

①FOR XML PATH로 XML 요소 문자열 가져 오기

FOR XML PATH(요소)는 쿼리의 끝에 붙여 쿼리의 실행 결과를 XML요소 출력해주는 함수다

 

✔ FOR XML PATH 예시 결과

SELECT ',' + ENAME + '님'
 FROM EMP
  FOR XML PATH('')

②STUFF 를 통해 FOR XML PATH 의 실행 결과로 나온 문자열 앞의 쉼표를 ' '공백으로 치환

STUFF(문자열,시작위치,크기,치환문자) 문자열에서 원하는 문자로 치환하는 함수이다.

 

✔STUFF + FOR XML PATH 예시 결과1

SELECT DISTINCT STUFF((
                      SELECT ',' + ENAME + '님'
                        FROM EMP
                         FOR XML PATH('')
                ),1,1,'')
   FROM EMP

 

✔STUFF + FOR XML PATH 예시 결과2

여러 행의 컬럼 값을 구분값에 따라 문자열로 합쳐줄 수도 있다.

SELECT  DISTINCT DEPT_CD,
        STUFF(( 
               SELECT  ',' +  ENAME + '님'
                 FROM EMP
                WHERE DEPT_CD = A.DEPT_CD --DEPT_CD로 구분하여 문자열 출력 
                  FOR XML PATH('')
              ),1,1,'') AS 'NAME'
 INTO #CTE_EMP
 FROM EMP AS A

2. 문자열 자르기 함수 (string_split)

string_split(문자열,구분자) 문자열을 구분자에 따라 여러 열로 잘라주는(분리해주는) 함수

 

✔string_split 예시

SELECT VALUE
  FROM string_split((SELECT NAME 
                       FROM #CTE_EMP
                      WHERE DEPT_CD = 111)
                      ,',')

✔string_split 예시 결과

3. 문자열을 거꾸로 출력하기(REVERSE)

REVERSE(문자열): 문자열을 뒤집어서 반대 순서로 출력하는 함수

 

✔REVERSE 예시

 SELECT ENAME, REVERSE(ENAME) AS 'REVERSE 결과'
   FROM EMP

✔REVERSE 예시 결과

4. 문자열에 공백 삽입하기(SPACE)

SPACE(공백 크기): 지정한 수만큼의 공백 문자 반환


✔SPACE 예시

 SELECT SPACE(10)+'SPACE' AS 'SPACE 결과'
 SELECT SPACE(5)+'SPACE' AS 'SPACE 결과'


✔SPACE 예시 결과

반응형