문자열 자르기, 특정 문자 위치 찾기, 문자열 치환, 공백 제거 관련 함수는 아래 링크로 확인해주세요.😊
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 예시 결과
'MS SQL' 카테고리의 다른 글
MS SQL_전체 테이블 및 컬럼 조회하는 법 (0) | 2022.10.19 |
---|---|
MS SQL_MERGE문 사용법 (0) | 2022.09.23 |
MS SQL_문자열 관련 함수 정리1(문자열 자르기, 특정 문자 위치 찾기, 문자열 치환, 공백 제거) (0) | 2022.09.15 |
MS SQL_CURSOR 연산자 사용법 (0) | 2022.09.08 |
MS SQL_LIKE 연산자 사용법 (0) | 2022.08.17 |