특정 문자 제외 처리 문의 0 5 6,426

by Taems [CUBRID] REPLACE 문자 제외 처리 [2025.01.02 15:24:14]


안녕하세요. 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"만 남도록 할 수 있는지 문의 드립니다.

새해 복 많이 받으세요~

by 마농 [2025.01.02 16:11:30]
-- Oracle 에서 테스트 --
SELECT value1
     , SUBSTR(
       REPLACE(REPLACE(', ' || value1
       , ', NCT001', '')
       , ', NCT352', '')
       , 3) value2
  FROM (SELECT 'NCT001, NCT005, NCT352' value1 FROM dual) a
;

 


by 우주민 [2025.01.02 16:34:49]

와... 콤마 문제를 이렇게도 처리할 수 있었네요....


by Taems [2025.01.02 17:50:35]

너무 감사합니다~ 잘 활용하겠습니다~^^


by 우주민 [2025.01.02 16:13:37]
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간의 차이에서 오는 결과값일 수는 있습니다.

제가 테스트에서 사용된 쿼리를 같이 올려봅니다.


by Taems [2025.01.02 17:51:16]

너무 감사합니다~ 이것도 같이 활용해서 써 보려고요~^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입