表A
name city newname
常州市 江苏省
江苏省苏州市 江苏省
浙江省杭州市 浙江省
宁波市 浙江省运行的结果中:
newname列的值为江苏省常州市
江苏省苏州市
浙江省杭州市
浙江省宁波市意思是,如果name 字段的值中含有city的值,那newname就等于name ,如果没有city的值,就等于city+name
name city newname
常州市 江苏省
江苏省苏州市 江苏省
浙江省杭州市 浙江省
宁波市 浙江省运行的结果中:
newname列的值为江苏省常州市
江苏省苏州市
浙江省杭州市
浙江省宁波市意思是,如果name 字段的值中含有city的值,那newname就等于name ,如果没有city的值,就等于city+name
insert into tb values('常州市' , '江苏省')
insert into tb values('江苏省苏州市' , '江苏省')
insert into tb values('浙江省杭州市' , '浙江省')
insert into tb values('宁波市' , '浙江省')
goselect name,city , newname = case when charindex(city , name) > 0 then name else city + name end from tb drop table tb/*
name city newname
-------------------- -------------------- ----------------------------------------
常州市 江苏省 江苏省常州市
江苏省苏州市 江苏省 江苏省苏州市
浙江省杭州市 浙江省 浙江省杭州市
宁波市 浙江省 浙江省宁波市(4 行受影响)*/