MSSQL 문자열 자르기 함수 LEFT RIGHT SUBSTRING
SQL Server에서 문자열을 다루는 작업은 데이터 처리와 분석에서 자주 사용하게 됩니다. 특히, 문자열을 자르는 함수는 데이터베이스 관리 및 보고서 작성 시 더 자주 사용하게 되는 것 같습니다. 이번 글에서는 MSSQL에서 자주 사용하는 문자열 자르기 함수인 LEFT, RIGHT, SUBSTRING에 대해 자세히 알아보고, 각 함수의 사용법을 예제와 함께 정리해 보겠습니다.
LEFT 함수
LEFT 함수는 문자열의 왼쪽부터 지정한 길이만큼의 문자를 반환합니다. 이 함수는 주로 문자열의 앞부분을 추출할 때 사용됩니다.
사용형식
LEFT ( string_expression , integer_expression )
- string_expression: 추출하고자 하는 문자열.
- integer_expression: 반환할 문자의 수를 지정하는 정수.
사용예제 1
DECLARE @string NVARCHAR(100) = '안녕하세요. 반갑습니다!'
SELECT LEFT(@string, 5) AS MyString;
위 예제를 실행하면 문자열 '안녕하세요. 반갑습니다!"에서 왼쪽부터 5개의 문자를 추출하여 '안녕하세요'를 반환합니다.
실행결과
사용예제 2
DECLARE @string NVARCHAR(100) = '안녕하세요abcd. 반갑습니다!'
SELECT LEFT(@string, 6) AS MyString;
위 예제는 앞선 예제 1과는 다르게 문자열에 영문 알파벳이 포함되어 있는 경우입니다. 위의 예제에서 앞쪽 문자 지정을 7로 하면 어떻게 될까요?
실행결과
한글 1글자와 영문 1글자가 같은 기준으로 취급된다는 것을 알 수 있습니다.
RIGHT 함수
RIGHT 함수는 함수명에서 알 수 있듯이 문자열의 오른쪽부터 지정한 길이만큼의 문자를 반환합니다. 이 함수는 주로 문자열의 뒷부분을 가져올 때 사용됩니다. LEFT 함수와 반대로 동작한다고 이해하시면 됩니다.
사용형식
RIGHT ( string_expression , integer_expression )
- string_expression: 추출하고자 하는 문자열.
- integer_expression: 반환할 문자의 수를 지정하는 정수.
사용예제
DECLARE @string NVARCHAR(100) = '안녕하세요. 반갑습니다!'
SELECT RIGHT(@string, 5) AS MyString;
위 예제를 실행하면 문자열 '안녕하세요. 반갑습니다!" 에서 오른쪽부터 5개의 문자를 추출하여 '갑습니다!'를 반환합니다.
실행결과
가장 오른쪽에 있는 특수기호인 느낌표(!)도 한 글자로 취급되어진다는 것을 알 수 있습니다.
SUBSTRING 함수
SUBSTRING 함수는 문자열의 일부분을 추출할 때 사용합니다. 시작 위치와 길이를 지정하여 문자열의 특정 부분을 추출할 수 있습니다.
사용형식
SUBSTRING ( string_expression , start , length )
- string_expression: 추출하고자 하는 문자열.
- start: 추출을 시작할 위치. (1부터 시작)
- length: 반환할 문자의 수를 지정하는 정수.
사용예제
DECLARE @string NVARCHAR(100) = '안녕하세요. 반갑습니다!'
SELECT SUBSTRING(@string, 8, 3) AS MyString;
위 예제에서는 문자열 '안녕하세요. 반갑습니다!'에서 8번째 문자부터 시작하여 3개의 문자를 추출하여 '반갑습'을 반환합니다.
실행결과
다양한 활용 예제
앞에서 설명한 세게의 문자열 함수들을 이용하여 좀 더 복잡한 실전 예제를 알아보겠습니다.
이메일 주소에서 도메인 추출하기
DECLARE @email NVARCHAR(100) = 'myid@yourdomain.com'
SELECT SUBSTRING(@email, CHARINDEX('@', @email) + 1, LEN(@email) - CHARINDEX('@', @email)) AS Domain;
위 예제에서는 이메일 주소 'myid@yourdomain.com'에서 '@' 기호 다음에 있는 문자열을 추출하여 'example.com'을 반환합니다.
파일 경로에서 파일명 추출하기
DECLARE @filepath NVARCHAR(100) = 'C:\Users\Public\Documents\MyReport.docx'
SELECT RIGHT(@filepath, CHARINDEX('\', REVERSE(@filepath)) - 1) AS FileName;
위 예제에서는 파일 경로 'C:\Users\Public\Documents\MyReport.docx'에서 파일명만 추출하여 'Report.docx'를 반환합니다.
특정 형식의 문자열을 변환하기
DECLARE @date NVARCHAR(10) = '2024-05-28'
SELECT LEFT(@date, 4) + '년 ' + SUBSTRING(@date, 6, 2) + '월 ' + RIGHT(@date, 2) + '일' AS KoreanDate;
문자열의 특정 형식을 변환하는 예제도 살펴보겠습니다. 예를 들어, 날짜 형식의 문자열을 변환하는 경우가 되겠습니다.
위 예제에서는 '2024-05-28' 형식의 날짜 문자열을 '2024년 05월 28일' 형식으로 변환해 줍니다.
마치며
MSSQL의 문자열 자르기 함수인 LEFT, RIGHT, SUBSTRING 함수는 데이터베이스에서 문자열을 처리 및 가공할 때 아주 자주 사용됩니다. 이 함수들을 잘 활용하면 다양한 문자열 조작 작업을 손쉽게 수행할 수 있습니다. 각 함수의 사용법과 다양한 예제를 통해 실무에서 어떻게 적용할 수 있는지 충분히 이해되셨는지 모르겠습니다. 도움이 되셨길 바랍니다.
'vita_Programing' 카테고리의 다른 글
로또 645 1등 당첨 예상번호 생성기 소스 (0) | 2024.05.31 |
---|---|
Javascript 두더지게임 소스 (1) | 2024.05.30 |
Javascript 벽돌깨기 게임 소스 공유 (0) | 2024.05.29 |
MSSQL case when then else 문 예제와 활용 (0) | 2024.05.28 |
Javascript 엘리베이터 동작 시뮬레이션 (0) | 2024.05.28 |