티스토리 뷰

Computer/Databases

[MSSQL] REPLACE

인생이글케쉬우냐 2009. 9. 23. 15:39
특정 컬럼의 문자들을 부분적으로 변경하고 싶을때..
자바처럼 replace같은게 없을까 하고 검색해봤더니..
오라클도, mssql도 다 replace함수를 쓰고 있었다.

방식은 간단
replace( '대상문자열', '원래문자', '바껴질문자')

예를 들어..
icon_nm 라는 컬럼에 'sXCar.ico' 이런식으로 들어가있는데 아래처럼
Car.ico만 personM.ico로 변경하고 나머지는 그대로 놔두고 싶을때 쓰는 함수다.

select replace( icon_nm, 'Car.ico', 'personM.ico'), * from tb_history
where tracker_id = '900049' or tracker_id = '900050'
and icon_nm not like '%person%'
order by tracker_id, history_dm desc;

변경할 부분만 '잘라서' update 하라고 지시받았을 때는
일일히 substring을 해야하나 하고 한숨을 내쉬었는데
생각보다 가볍게 해결되었다.

아래는 그 update문
update tb_history set icon_nm = replace( icon_nm, 'Car.ico', 'personM.ico')
where tracker_id = '510017' or tracker_id = '510025'
and icon_nm not like '%person%';
반응형