[Oracle] 문자열 마지막 콤마(쉼표) 제거 3가지 방법
- 데이터베이스/오라클
- 2022. 7. 23.
오라클에서 쿼리문을 작성할 때 문자열의 마지막 콤마(쉼표)를 제거해야 하는 상황이 자주 발생한다. 문자열의 마지막 문자를 제거하는 방법은 딱 정해져 있지 않으며 상황에 따라서 다양한 방법을 사용할 수 있다. 아래는 마지막 문자를 조금 더 효율적으로 제거할 수 있는 방법이며, 아래의 기능을 이해한다면 다양하게 활용할 수 있을 것이다.
목차 |
RTRIM() 함수로 마지막 콤마 제거
WITH emp_t(enames) AS (
SELECT 'BLAKE,CLARK,JONES,' FROM dual
)
SELECT enames
, RTRIM(enames, ',') AS enames2
FROM emp_t
RTRIM 함수를 사용하여 문자열의 마지막(오른쪽) 콤마를 제거할 수 있다.
RTRIM 함수는 오른쪽 콤마가 존재할 경우 제거를 하고 없을 경우 아무런 작업을 하지 않는다.
RTRIM 함수 사용 시 주의 사항
WITH emp_t(enames) AS (
SELECT 'BLAKE,CLARK,JONES, ' FROM dual
)
SELECT enames
, RTRIM(enames, ',') AS enames2
, RTRIM(enames, ', ') AS enames3
, RTRIM(TRIM(enames), ',') AS enames4
FROM emp_t
RTRIM 함수를 사용하여 마지막 문자를 제거할 때는 제거할 문자가 정확히 일치해야 제거가 된다.
콤마와 공백이 항상 함께 존재한다면 콤마+공백을 제거해야 마지막 문자가 정확히 제거된다.
마지막 문자에 공백이 존재하거나 존재하지 않을 수 있다면 TRIM 함수를 활용할 수도 있다.
REGEXP_REPLACE() 함수로 마지막 콤마 제거
WITH emp_t(enames) AS (
SELECT 'BLAKE,CLARK,JONES,' FROM dual
)
SELECT enames
, REGEXP_REPLACE(enames, ',([^,]*)$', '\1') AS enames2
FROM emp_t
REGEXP_REPLACE 함수를 사용하면 정규식을 사용하여 조금 더 다양하게 문자를 제거할 수 있다.
위의 정규식을 사용하면 콤마만 있거나, 콤마와 공백이 함께 있어도 제거할 수 있다.
SUBSTR() 함수로 마지막 콤마 제거
WITH emp_t(enames) AS (
SELECT 'BLAKE,CLARK,JONES,' FROM dual
)
SELECT enames
, SUBSTR(enames, 1, LENGTH(enames) - 1) AS enames2
FROM emp_t
SUBSTR 함수로 마지막 문자를 제거하는 방법은 가장 쉽게 생각할 수 있는 방법이다.
문자열 마지막에 콤마가 무조건 존재한다면 위의 방식도 아무런 문제 없이 잘 작동한다.
SUBSTR 함수 사용 시 주의 사항
SUBSTR 함수를 사용하여 마지막 문자를 제거할 경우 해당 문자가 존재하지 않으면 문자열의 마지막 문제가 잘못 제거될 수 있다. RTRIM, REGEXP_REPLACE 함수는 마지막 문자가 존재하지 않을 경우 아무런 제거 작업을 수행하지 않는다. 문자열의 마지막 문자가 존재하지 않을 수 있다면 RTRIM, REGEXP_REPLACE 함수를 사용할 것을 권장한다.