문자열 치환에서
replace('aabbcc', 'bbcc', 'd')
위에 처럼 하면 값이 'aad'로 치환이 되는 것을 알고 있습니다.
하지만 제가 궁금한것은 이렇게 'bbcc'로 정해져 있는 경우 말고
'b'뒤로부터는 모두 잘려서 'd'로 변화게 하고 싶습니다.
예를 들어
A테이블
B필드
데이터 값이
aabbcc
abbbcc
acbbcc
이렇게 동일한 데이터가 있으면
update A set B = replace(B, 'bbcc', 'd')
이렇게 모든 데이터가 'aad','abd','acd'로 치환이 되는데
만약 데이터 값이
aabbcc
11abbca
babbac
ababbac
이런 경우 B필드에 데이터 값이 'bb'뒤로 부터
한번에 치환이 되어 'aad','11ad','bad','abad'값이 될수 있는 쿼리 부탁드립니다.
참고로 sql2000입니다.
Comment 3
-
처리짱
2014.02.21 17:22
-
이스트럭(강동운)
2014.02.21 18:06
처리짱님 안녕하세요 ^^;; 태클은 아닙니다만;; '' 부분이 @a가 되야하지 않을까 싶어서요 ~^^;;
감사합니다~~
DECLARE @A NVARCHAR(20)
SET @A = 'aaffcc'
SELECT CASE WHEN CHARINDEX('bb', @a) > 0 THEN
LEFT(@A, CHARINDEX('bb', @a) - 1) + 'd' ELSE
@a
END
-
한태
2016.03.16 18:30
create table bcut(bbb varchar(10))insert into bcut values ('aabbcc'),('11abbca'),('babbac'),('ababbac'),('aabcc')select case when charindex('bb',bbb)>0 then SUBSTRING(bbb,1,CHARINDEX('bb',bbb)-1) + 'd'else bbb endfrom bcut
DECLARE @A NVARCHAR(20)
SET @A = 'aabbcc'
SELECT CASE WHEN CHARINDEX('bb', @a) > 0 THEN
LEFT(@A, CHARINDEX('bb', @a) - 1) + 'd' ELSE
''
END