Database

SQL, SUBSTR 함수 사용법 (문자열 자르기)

번복 2023. 5. 31. 22:20

SUBSTR 함수는 SQL에서 특정 문자열의 부분 문자열을 추출하는 데 사용됩니다. DBMS 별로 함수명에 차이가 조금 있습니다. MYSQL과 오라클은 SUBSTR()을, MS SQL Server, PostgreSQL은 SUBSTRING()을 사용합니다. 사용법은 거의 비슷하지만 이 글에선 SUBSTR를 기준으로 알아보겠습니다.

SUBSTR

구문

SUBSTR(string, start_position, length)
  • string : 부분 문자열을 추출하려는 문자열
  • start_position : 문자열에서 부분 문자열이 시작되는 위치. 첫 번째 문자의 위치는 1
  • length : 추출할 부분 문자열의 길이

 

예시 1) 성과 이름 구분

아래와 같이 한국 사람 이름이 저장된 People 테이블이 있다고 가정합니다.

 

people 테이블

 

만약 성과 이름을 분리하고 싶다면 SUBSTR 함수를 이용해 아래와 같이 쿼리 할 수 있습니다.

SELECT ID,
       FullName,
       SUBSTR(FullName, 1, 1) AS LastName, -- 성 추출
       SUBSTR(FullName, 2) AS FirstName -- 이름 추출
FROM People;

 

substr

 

예시 2) 날짜 표기 자르기

아래와 같이 날짜가 저장된 Dates 데이블이 있습니다.

 

dates 테이블

 

현재 컬럼에는 yyyy-mm-dd 형태로 값이 저장되어 있지만 SUBSTR 함수를 이용해서 yyyy-mm까지만 반환할 수 있습니다.

SELECT ID,
       Date,
       SUBSTR(Date, 1, 7) AS YearMonth -- 년도와 월 추출
FROM Dates;

 

substr yearmonth

 

예시 3) 식별 코드 분리

아래와 같이 제품 코드가 저장된 Products 테이블이 있습니다.

 

products 테이블

 

SUBSTR 함수는 종종 식별자나 코드에서 특정 부분을 추출할 때 사용됩니다. 예를 들어 첫 번째 두 자리가 제품 카테고리를 나타내고, 그다음 세 자리가 제품의 고유 번호를 나타내는 구조인 경우에 아래와 같이 카테고리와 제품 번호를 분리할 수 있습니다.

SELECT ID,
       ProductCode,
       SUBSTR(ProductCode, 1, 2) AS Category, -- 카테고리 부분 추출
       SUBSTR(ProductCode, 4, 3) AS ProductNumber -- 제품 번호 부분 추출
FROM Products;

 

substr productcode

반응형