Database

[SQL] 문자열 자르기 (SPLIT_PART/SUBSTRING/LEFT/RIGHT)

비번변경 2023. 6. 2. 21:26

개요

2023.06.01 - [SQL] 문자열 합치기 (||/CONCAT/CONCAT_WS)에서 여러 문자열을 합쳐보았다. 이번 글에서는 자르는 방법도 정리한다. 표준인 ANSI SQL을 기준으로 하고 싶어, PostgreSQL을 사용해 정리한다.

 

 

SPLIT_PART

SPLIT_PART 함수는 문자열을 지정한 구분자로 자르고 n번째 하위 문자열을 반환한다.

SPLIT_PART(string, delimiter, position)

-- 예시
SELECT SPLIT_PART('A,B,C', ',', 2);

 

실행 결과

| split_part |
| ---------- |
| B          |

 

 

SUBSTRING / SUBSTR

SUBSTRING는 특정 위치로부터 지정한 길이의 문자열을 반환한다. 길이는 생략할 수 있으며, 생략하면 문자열 끝까지 반환한다. SUBSTRING과 SUBSTR은 같은 기능을 한다.

 

SUBSTRING(string , start_position , length)
SUBSTRING(string FROM start_position FOR length)

-- 예시
SELECT
	SUBSTRING('PostgreSQL', 1, 8), -- PostgreS
	SUBSTRING('PostgreSQL', 8)  -- SQL
;

 

실행 결과

| substring | substring |
| --------- | --------- |
| PostgreS  | SQL       |

 

length 지정 시

 

length 미지정 시

 

 

LEFT

LEFT 함수는 문자열의 처음부터 n개 문자를 반환한다. n이 음수이면 문자열 끝에서 n개 문자를 제외한 나머지를 반환한다.

LEFT(string, n) 

-- 예시
SELECT 
	LEFT('ABCde', 2),
	LEFT('ABCde',-2);

 

실행 결과

| left | left |
| ---- | ---- |
| AB   | ABC  |

 

 

RIGHT

RIGHT 함수는 LEFT 함수와 반대로 문자열의 끝부터 n개 문자를 반환한다. n이 음수이면 문자열 처음부터 n개 문자를 제외한 나머지를 반환한다.

RIGHT(string, n)    

-- 예시
SELECT 
	RIGHT('ABCde', 2),
	RIGHT('ABCde',-2);

 

실행 결과

| right | right |
| ----- | ----- |
| de    | Cde   |

 

 

참고 문서

https://www.postgresqltutorial.com/postgresql-string-functions/

 

 

 

728x90