본문 바로가기
MS SQL

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

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

1. 문자열 자르기 함수 (SUBSTRING, LEFT, RIGHT)

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

 

 

✔SUBSTRING, LEFT, RIGHT 예시

DECLARE @TODAY VARCHAR(20) = '2022-09-15'  --문자열 변수 선언
-- 년도 출력
SELECT SUBSTRING(@TODAY,1,4) AS '년도_SUBSTRING'
SELECT LEFT(@TODAY,4) AS '년도_LEFT'
-- 월 출력
SELECT SUBSTRING(@TODAY,6,2) AS '월__SUBSTRING'
-- 일 출력
SELECT SUBSTRING(@TODAY,9,10) AS '일자_SUBSTRING'
SELECT RIGHT(@TODAY,2) AS '일자_RIGHT'

 

 

✔SUBSTRING, LEFT, RIGHT 예시 결과



2. 특정 문자 위치 찾기(CHARINDEX)

CHARINDEX('특정 문자',문자열) : 문자열에서  특정 문자의 위치를 반환
CHARINDEX('특정 문자',문자열,시작위치) : 문자열에서 시작위치에서부터 특정 문자의 위치를 반환

 

✔CHARINDEX 예시

DECLARE @TODAY VARCHAR(20) = '2022-09-15'
SELECT CHARINDEX('-',@TODAY)AS '시작 위치 지정X'    --문자열의 '-'의 첫 위치 반환
SELECT CHARINDEX('-',@TODAY,6)AS'시작 위치 지정ㅇ'  -- 문자열의 6 위치에서부터 '-'의 위치 반환

✔CHARINDEX 예시 결과



3. 문자열 치환 (REPLACE,STUFF)


REPLACE (문자열, 특정 문자, 치환할 문자) 문자열의 특정 문자를 치환할 문자로 바꿔주는 함수

STUFF(문자열,시작(대입)위치,크기,치환문자) 문자열에서 시작위치 크기를 지정하여 원하는 문자로 치환하는 함수 

 

✔REPLACE 예시

DECLARE @TODAY VARCHAR(20) = '2022-09-15'
SELECT REPLACE(@TODAY,'-','')    		  		-- '-' -> '' 공백으로 변경
SELECT REPLACE(@TODAY,'15',RIGHT(@TODAY,2)+1) AS TOMORROW   -- 15를 16으로 변경

✔REPLACE 예시 결과

 

 

 

✔STUFF 예시

DECLARE @PHONE VARCHAR(20) = '010-1234-5678'
SELECT STUFF(@PHONE,10,4,'****')AS 'STUFF 결과'

✔STUFF 예시 결과


4. 문자열 공백 제거 (LTRIM, RTRIM,TRIM)

LTRIM(문자열) :문자열의 왼쪽 공백 제거
RTRIM(문자열):문자열의 오른쪽 공백 제거
TRIM (문자열): 문자열의 왼쪽 또는 오른쪽에서 공백 제거

TRIM (지정문자 FROM 문자열): 문자열의 시작과 끝 부분에서  지정문자를 제거

 

✔LTRIM, RTRIM,TRIM 예시

DECLARE @TEXT VARCHAR(20) = '   MS-SQL   '
SELECT LTRIM(@TEXT) AS '왼쪽 공백 제거'
SELECT RTRIM(@TEXT) AS '오른쪽 공백 제거'
SELECT TRIM(@TEXT)  AS '양쪽 공백 제거'

SELECT TRIM ('&#-' FROM '# #MS-SQL&-') AS '시작과 끝에 공백x'     --결과: ' #MS-SQL'
SELECT TRIM ('&#-' FROM ' ##MS-SQL&- ')AS '시작과 끝에 공백o'     --결과: ' ##MS-SQL&- '

* TRIM으로 지정문자를 제거할 때는 문자열 전체를 보는 게 아닌, 시작과 끝 부분에서만 지정문자를 제거한다.

 

✔LTRIM, RTRIM,TRIM 예시 결과


5. 문자열 길이 

LEN(문자열): 문자열의 길이 반환


✔LEN 예시

DECLARE @TEXT2 VARCHAR(20) = '  안녕하세요!! '
SELECT LEN(@TEXT2) 
SELECT LEN(TRIM(@TEXT2))

*시작 부분 공백은 길이에 포함되지만 끝 부분 공백은 길이에 포함되지 않음

 

✔LEN 예시 결과

반응형