안녕하세요. cubrid 9.3 버전에서 컬럼 값에 있는 특정 문자를 제외하려고 하는데요.
SELECT ('NCT001, NCT005, NCT352') AS VALUE1 FROM db_root;
| VALUE1 |
| NCT001,NCT005,NCT352 |
위 값에서 "NCT001,NCT352" 만 제외하고 "NCT005"만 남기도록 하고 싶은데요.
REPLACE 를 쓰면 VALUE1 값이 NULL로 나옵니다.
SELECT
REPLACE(REPLACE(VALUE1, 'NCT001',''), 'NCT352', '')
FROM(
SELECT ('NCT001, NCT005, NCT352') AS VALUE1 FROM db_root);
어떻게 하면 "NCT001,NCT352" 만 제외하고 "NCT005"만 남도록 할 수 있는지 문의 드립니다.
새해 복 많이 받으세요~
-- Oracle 에서 테스트 --
SELECT value1
, SUBSTR(
REPLACE(REPLACE(', ' || value1
, ', NCT001', '')
, ', NCT352', '')
, 3) value2
FROM (SELECT 'NCT001, NCT005, NCT352' value1 FROM dual) a
;
와... 콤마 문제를 이렇게도 처리할 수 있었네요....
너무 감사합니다~ 잘 활용하겠습니다~^^
WITH ROOT AS (
SELECT ('NCT001, NCT005, NCT352') AS VALUE
)
SELECT VALUE AS VALUE1
, REPLACE(VALUE,'NCT001','') AS VALUE2
, REPLACE(REPLACE(VALUE,'NCT001',''),'NCT352','') AS VALUE3
, TRIM(',' FROM REPLACE(REPLACE(VALUE,'NCT001',''),'NCT352','')) AS VALUE4
, TRIM(',' FROM TRIM(REPLACE(REPLACE(VALUE,'NCT001',''),'NCT352',''))) AS VALUE5
FROM ROOT
일단 제가 테스트 할때는 NULL 이 나오는 경우는 없었습니다.
물론 테스트를 MYSQL 로 해서 DB간의 차이에서 오는 결과값일 수는 있습니다.
제가 테스트에서 사용된 쿼리를 같이 올려봅니다.
너무 감사합니다~ 이것도 같이 활용해서 써 보려고요~^^