본문 바로가기
Server/SQL

SUBSTR

by print_soo 2024. 8. 26.

SUBSTR 함수는 SQL에서 문자열의 일부를 추출할 때 사용하는 함수입니다. 원하는 문자열에서 특정 위치부터 지정한 길이만큼의 부분 문자열을 얻을 수 있습니다.

📌 기본 구문

SUBSTR(문자열, 시작위치, [길이])
  • 문자열: 부분 문자열을 추출할 원본 문자열입니다.
  • 시작위치: 추출을 시작할 위치를 나타내는 정수입니다.
    • 양의 정수일 경우 문자열의 왼쪽부터 계산합니다.
    • 음의 정수일 경우 문자열의 오른쪽부터 계산합니다.
  • 길이 (선택사항): 추출할 문자 수를 나타내는 정수입니다.
    • 생략하면 시작위치부터 문자열의 끝까지를 추출합니다.

데이터베이스 시스템에 따라 SUBSTRING이라는 이름으로도 사용됩니다.

  • Oracle, PostgreSQL: SUBSTR
  • MySQL, SQL Server: SUBSTRING

📚 사용 예시

예시 1: 기본 사용법

SELECT SUBSTR('Hello World', 7, 5) AS result;

--결과: World

 

  • 문자열 'Hello World'에서 7번째 위치부터 5글자를 추출하여 'World'를 얻습니다.

예시 2: 길이 파라미터 생략

SELECT SUBSTR('Hello World', 7) AS result;

--결과: World

 

설명:

  • 시작 위치만 지정하면 그 위치부터 문자열의 끝 까지를 추출합니다.

예시 3: 시작 위치에 음수 사용

SELECT SUBSTR('Hello World', -5, 5) AS result;

--결과: World

 

설명:

  • 시작 위치에 -5를 사용하면 문자열의 끝에서 5번째 문자부터 시작하여 5글자를 추출합니다.

예시 4: 실제 데이터와 함께 사용

SELECT
  employee_name,
  SUBSTR(phone_number, 1, 3) AS country_code
FROM
  employees;

설명:

  • employees 테이블에서 각 직원의 phone_number처음 3자리를 추출하여 country_code로 표시합니다.

🎯 다양한 데이터 베이스별 사용법

Oracle과 PostgreSQL

SELECT SUBSTR('Example String', 9, 6) AS result;
-- 결과: String

MySQL과 SQL Server

SELECT SUBSTRING('Example String', 9, 6) AS result;
-- 결과: String

📝 주의 사항

  • 인덱스 시작 위치:
    • 대부분의 SQL 구현에서는 시작 위치가 1부터 시작합니다.
  • 길이가 0 또는 음수인 경우:
    • 결과는 빈 문자열을 반환합니다.
  • 시작 위치가 문자열 길이보다 큰 경우:
    • 결과는 빈 문자열을 반환합니다.
  • 길이가 문자열의 끝을 넘어가는 경우:
    • 가능한 부분까지 추출하며, 에러가 발생하지 않습니다.

🔗 관련 함수

  • LEFT: 문자열의 왼쪽부터 지정한 길이만큼 추출합니다.
  • RIGHT: 문자열의 오른쪽부터 지정한 길이만큼 추출합니다.
  • LEN 또는 LENGTH: 문자열의 길이를 반환합니다.
  • REPLACE: 문자열 내의 특정 부분을 다른 문자열로 대체합니다.

'Server > SQL' 카테고리의 다른 글

숫자함수  (0) 2024.08.26
UPPER / LOWER  (0) 2024.08.26
REPLACE  (0) 2024.08.26
날짜 함수  (0) 2024.08.26
OUTER JOIN  (0) 2024.08.26