首页 > 解决方案 > 多个词动态替换

问题描述

我想动态替换表格列中的单词,因为我不知道需要替换多少单词

DECLARE @FormQuery NVARCHAR(max)='Case ', 
        @qry       NVARCHAR(max)=''; 

SELECT @FormQuery = +COALESCE(@FormQuery 
                              + 'When   ram.DynamicApplicableValueField Like ''%' 
                              + cmt.mastertype 
                              + '%'' Then   replace (ram.DynamicApplicableValueField ,''' 
                              + cmt.mastertype + ''',   rf.' 
                              + cmt.specialclausematchingcolumns + ') ', '') 
FROM   commonmastertypes cmt 
       JOIN (SELECT column_name 
             FROM   information_schema.columns 
             WHERE  table_name = 'ReeferDetails') spTable 
         ON cmt.specialclausematchingcolumns = spTable.column_name; 

SELECT @FormQuery  

O/P

 Case When ram.DynamicApplicableValueField Like '%@@Temp%' Then replace (ram.DynamicApplicableValueField ,'@@Temp', rf.Preset_Temperature) When ram.DynamicApplicableValueField Like '%@@Degree%' Then replace (ram.DynamicApplicableValueField ,'@@Degree', rf.Temp_UOM) 

预期结果

replace(replace(ram.DynamicApplicableValueField,'@@Temp',rf.Preset_Temperature),'@@Degree',rf.Temp_UOM)

标签: sql-server

解决方案


推荐阅读