반응형
문자열 자르기 함수
RIGHT
SELECT RIGHT(문자열, 길이)
문자열을 오른쪽에서부터 길이만큼 출력한다.
SELECT RIGHT('안녕하세요', 3) -- 하세요
REVERSE
SELECT REVERSE(문자열)
문자열을 거꾸로 출력한다.
SELECT REVERSE('안녕하세요') -- 요세하녕안
CHARINDEX
SELECT CHARINDEX(검색할문자, 문자열, [시작위치])
문자열에서 특정 문자의 위치를 검색한다.
SELECT CHARINDEX('안', '안녕하세요안녕하세요') -- 결과 : 1
SELECT CHARINDEX('안', '안녕하세요안녕하세요', 2) -- 결과 : 6
-- 시작점이 첫번째 '안' 뒤에서 부터이기 때문에, 그 이후의 '안'의 위치가 출력
PATHINDEX
SELECT PATHINDEX('%검색할문자%', 문자열)
특정 문자를 찾는 CHARINDEX로 와 달리 PATHINDEX는 패턴을 설정하여 검색한다.
SELECT PATINDEX ('%[0-9]%', '손꽁쥐27살')
SELECT PATINDEX ('%꽁%', '손꽁쥐27살')
예제
특정 구분자를 기준으로 문자열을 잘라보자
단, 문자열에서 구분자를 찾을 때 그 기준은 뒤에서부터이다.
'D:\TEST\GO\테스트_문서.txt' 라는 문자열이 존재한다.
이때, 내가 필요한 문자열은 '테스트_문서.txt'이다.
따라서 문자열을 구분자 \를 기준으로 자르되, 가장 뒤에 해당하는 문자를 가져와야한다.
즉, 문자열을 뒤에서부터 잘라야한다.
RIGHT, REVERSE, CHARINDEX 함수를 이용해서 다음과 같은 쿼리를 작성하면, 원하는 결과를 얻을 수 있다.
DECLARE @Str VARCHAR(100) = 'D:\TEST\GO\테스트_문서.txt'
SELECT RIGHT(@Str, CHARINDEX('\', REVERSE(@Str))-1)
반응형
'프로그래밍 > MSSQL' 카테고리의 다른 글
[MSSQL] ORDER BY CASE (조건정렬) (0) | 2017.02.13 |
---|---|
[MSSQL] 집합 연산자 UNION (합집합), INTERSECT (교집합), EXCEPT (차집합) (0) | 2017.02.13 |
[MSSQL] ' (따옴표) 포함된 문자열 출력 (0) | 2017.02.13 |
[MSSQL] 조건절 LIKE 검색 조건 (ESCAPE 특수문자 와일드 카드 (예약어) 검색) (0) | 2017.02.13 |
[MSSQL] PIVOT, UNPIVOT (행렬 변환) (6) | 2017.02.10 |