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 |