MSSQL 데이터베이스의 검색 방법에서 문자열을 원하는 길이(영역)의 문자열만큼 잘라서 조회해야 할 경우가 있습니다. 이번에는 MSSQL에서 문자열 자르기의 3가지 종류인 SUBSTRING, LEFT, RIGHT 함수에 대하여 알아보도록 하겠습니다.
MSSQL 문자열 자르기 4가지 함수
1. SUBSTRING
- SUBSTRING 함수는 기존 문자열을 받아서 지정한 영역만큼 자른 후 자른 문자열만 리턴합니다. 주로 시작위치를 정하고 가져올 문자열의 길이를 지정하여 원하는 영역만을 가져올 수 있습니다. 또한 WHERE문의 조건절로도 사용이 가능합니다.
- 예를 들어, 날짜를 년/월/일로 구분하여 문자열을 받아오는 방법 및 전화번호의 중간 또는 끝자리만을 받아올 수 있는 등 여러 가지 방면으로 활용 가능성이 높습니다.
- 기본 문법 - SUBSTRING( '기존 문자열', '시작위치', '가져올 문자열의 길이')
- 주의해야 할 점으로 시작위치는 기본적으로 0이 아닌 1부터 시작입니다.
>> 예제 (SELECT문 조회 칼럼)
-- 날짜의 년/월/일을 구분하여 자르는 방법
SELECT SUBSTRING('2023-06-29', 1, 4) AS Year
,SUBSTRING('2023-06-29', 6, 2) AS Month
,SUBSTRING('2023-06-29', 9, 2) AS Day
,SUBSTRING('2023-06-29', 0, 1) AS Temp;
-- 결과값
Year = 2023
Month = 06
Day = 29
Temp = '' (빈값 - 1부터 시작을 해야지 정상적인 길이만큼 가져올 수 있습니다.)
-- 전화번호의 중간/끝자리를 구분하여 자르는 방법
SELECT SUBSTRING('010-0000-0001', 5, 4) AS MidNo
,SUBSTRING('010-0000-0001', 10, 4) AS EndNo
,SUBSTRING('01000000001', 1, 3) + '-' + SUBSTRING('01000000001', 4, 4)
+ '-' + SUBSTRING('01000000001', 9, 4) AS Hp;
-- 결과값
MidNo = 0000
EndNo = 0001
Hp = 010-0000-0001
>> 예제 (WHERE문 조건절)
-- 조건 > 6월달에 등록한 회원
-- (등록날짜형식 '2023-06-01')
SELECT member
FROM gym
WHERE SUBSTRING(regist_date, 6, 2) = '06';
2. LEFT
- LEFT 함수는 기존 문자열을 받아서 왼쪽부터 지정한 길이만큼 자른 후 자른 문자열을 리턴합니다. WHERE문의 조건절로도 사용이 가능합니다.
- 기본 문법 - LEFT( '기존 문자열', '가져올 문자의 길이')
>> 예제 (SELECT문 조회 칼럼)
-- 이름에서 성만 구분하여 자르는 방법
SELECT LEFT('김경식', 1) AS Name1,
,LEFT('홍승익', 1) AS Name2;
-- 결과값
Name1 = 김
Name2 = 홍
-- 각각의 길이만큼 왼쪽부터 자르는 방법
SELECT LEFT('가나다라마바사', 1)
,LEFT('가나다라마바사', 2)
,LEFT('가나다라마바사', 4)
,LEFT('가나다라마바사', 6);
-- 결과값
1 = 가
2 = 가나
4 = 가나다라
6 = 가나다라마바
>> 예제 (WHERE문 조건절)
-- 이름이 '김'으로 시작하는 회원
SELECT member
FROM gym
WHERE LEFT(name, 1) = '김';
3. RIGHT
- RIGHT 함수는 기존 문자열을 받아서 오른쪽부터 지정한 길이만큼 자른 후 자른 문자열을 리턴합니다. LEFT와 마찬가지로 WHERE문의 조건절에서 사용이 가능합니다.
- 기본 문법 - RIGHT( '기존 문자열', '가져올 문자열의 길이' )
>> 예제 (SELECT문 조회 칼럼)
-- 이름에서 성을 뺀 나머지 이름만 자르는 방법
SELECT RIGHT('김천호', 2) AS Name1
,RIGHT('전지은', 2) AS Name2;
-- 결과값
Name1 = 천호
Name2 = 지은
-- 각각의 길이만큼 오른쪽부터 자르는 방법
SELECT RIGHT('abcdefg', 1)
,RIGHT('abcdefg', 2)
,RIGHT('abcdefg', 4)
,RIGHT('abcdefg', 6);
--결과값
1 = g
2 = fg
4 = defg
6 = bcdefg
>> 예제 (WHERE문 조건절)
-- 전화번호 끝자리가 0629인 회원
SELECT member
FROM gym
WHERE RIGHT(hp, 4) = '0629';
이번에는 MSSQL에서 자신이 원하는 길이만큼 문자열을 자르는 방법에 대하여 알아보았습니다. 3가지 함수 모두 많이 사용하는 함수이지만, 상황에 맞게 활용할 수 있는 함수이며, SUBSTRING은 시작위치의 제한이 없다는 점에서 많이 사용하며, LEFT와 RIGHT함수는 간편하게 원하는 문자열을 받을 수 있는 장점이 있습니다.
'DataBase > MSSQL' 카테고리의 다른 글
MSSQL UPDATE 사용법 및 예제 (0) | 2024.02.29 |
---|---|
[MSSQL] INSERT INTO SELECT 문 (조회된 결과를 삽입) (0) | 2023.11.14 |
[MSSQL] INSERT 문 사용법 및 예제 (+ 여러개 레코드 추가) (0) | 2023.11.13 |
[MSSQL] SELECT 문 사용법 및 예제 (0) | 2023.11.02 |
MSSQL TOP 사용법 (행의 수를 지정하여 출력) (0) | 2023.06.30 |
댓글