0
Sample items in table1 

table1.productname 
Moshi Monsters 7-in-1 Accessory Pack - Poppet 
Mario vs. Donkey Kong Mini-Land Mayhem! 

我想replace'-。!从所有productname但使用

select case
        when CHARINDEX ('-',[productname])>0 then REPLACE (ProductName ,'-',' ')
        when CHARINDEX ('!',[productname])>0 then REPLACE (ProductName ,'!','') 
        when CHARINDEX ('.',[productname])>0 then REPLACE (ProductName ,'.','') 
       else productname
       end as productname 
   from table1

似乎只替换-

output

Moshi Monsters 7 in 1 Accessory Pack   Poppet 
Mario vs. Donkey Kong Mini-Land Mayhem 

expected output 
Moshi Monsters 7 in 1 Accessory Pack   Poppet 
Mario vs Donkey Kong MiniLand Mayhem

我该如何解决这个问题,我在产品名称中有多个字符要替换,例如示例等,并且该列大约 5k 大。实际上,我想用更改后的名称更新 table1,但想查看哪些已更改以及如何更新。这种replace说法似乎无法满足所有要求。似乎可以通过更新中的多次迭代来完成,但不知道如何在更新中使用迭代。我该如何提前处理?

4

1 回答 1

3

您始终使用相同的源进行字符串替换:原始ProductName字段,不会更改。您需要链接替换:

REPLACE(REPLACE(REPLACE(ProductName, '.', ''), '!', ''), '-', '')

这变得非常丑陋。你最好在你的客户中这样做。

于 2012-12-13T15:04:34.357 回答