update 조건식 관련 질문하나 드릴게요 ㅠㅠ 0 4 213

by 준일정 [SQL Query] mssql sql oracle mysql [2020.01.20 16:23:56]


제목 없음11.png (3,917Bytes)

안녕하세요

 

데이터를 보시면 아시겠지만 

제가 하고자 하는건 "국산" 이라는 글자를 "국내산"으로 업데이트를 처야 합니다.

 

근데 문제가 되는게 

replace(원산지,"국산",국내산")

으로 했을 시 

 

미국산->미국내산

외국산->외국내산

 

이렇게 바뀌어 버려서 문제가 됩니다. ㅜㅜ

 

땋 

국산 이라는 2글자만 추려서 국내산으로 바꿀 수 있는 방법이 존재할까요?

by jkson [2020.01.20 17:18:28]

WITH T AS
(
SELECT '감자(미국산),스위트콘(미국산),양파(국산)' TXT FROM DUAL UNION ALL
SELECT '감자(미국산),양파(국산),밀가루(미국산,캐나다산)' FROM DUAL
)
SELECT REGEXP_REPLACE(TXT,'(^|\s|\(|,)(국산)','\1국내산') TXT
     , REPLACE(REPLACE(TXT,'(국산','(국내산'),',국산',',국내산') TXT2
  FROM T

by 준일정 [2020.01.20 17:31:17]

와우 어렵네


by jkson [2020.01.20 18:28:27]

정규식은 그냥 보지 마시고 replace 두 번 한 것만 보세요. 괄호 다음 국산 혹은 컴마 다음 국산일 때만 replace


by 느훼훼 [2020.01.22 15:08:39]

이거 방법 되게 여러가지일거 같네요.

DECODE(LENGTH(컬럼), 2, DECODE(컬럼, '국산', '국내산', 컬럼), 컬럼)

이렇게 해도 될 듯여.

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