SQL Server - 多个更新/更正数据条目

时间:2017-06-16 18:01:07

标签: sql sql-server tsql

我必须清理一些导入的数据。将一些条目更改为我使用的正确代码。我有它的工作,但有一个比更新/集的清单更清晰的方法吗?

update List
  SET    STCode = REPLACE(STCode, 'Georgia','GEO')
update List
  SET    STCode = REPLACE(STCode, 'Louisiana','LOU')
etc...

2 个答案:

答案 0 :(得分:1)

可能正在使用带有union和join

的transalation表
  UPDATE T1
  SET T1.STCode = T2.code
  FROM List AS T1
  INNER JOIN (
      select 'Georgia' name ,'GEO' code
      union 
      select 'Louisiana','LOU'
  ) T2 on .T1.STCode = T2.name

答案 1 :(得分:1)

提供STCode最多可存储一个要替换的值(没有像'Georgia和Louisiana'这样的东西)查找表是解决方案

  update List
  set  STCode = REPLACE(STCode, replacement.bad, replacement.good)
  from List l
  join (
      values 
         ('Georgia','GEO')
        ,('Louisiana','LOU')
      ) replacement(bad, good)
      on l.STCode like '%' + replacement.bad + '%'
      ;
相关问题