替换商品名称中指定字符为新字符(只替换最前面的英文部分)

--替换商品名称中指定字符为新字符(只替换最前面的英文部分)
--修改u_ware 表的商品名,会自动触发修改u_ware_q表的商品名(触发器)
--u_chk_ware 表的商品名需要单独修改
--以下代码的作用是:把商品名中前面英文部分中的XX替换为A
declare @strOld varchar(10) = 'XX'
declare @strNew varchar(10) = 'A'

select  wareid,a.warename,    
    case when CHARINDEX(@strOld,SUBSTRING(a.warename,1,PATINDEX('%[^a-z]%', a.warename)-1)) > 0 then STUFF(a.warename,CHARINDEX(@strOld,a.warename),len(@strOld),@strNew) else a.warename end
from u_ware a
where  PATINDEX('%[^a-z]%', a.warename)-1 >= 0    -- warename中包含非字母字符
    and CHARINDEX(@strOld,a.warename) > 0        -- warename中包含要替换的字符

 

posted @ 2024-09-25 17:02  竹楼风雨声  阅读(40)  评论(0)    收藏  举报