唯一的通配符更新SQL语法

时间:2014-01-22 19:25:36

标签: sql sql-server replace wildcard

我对SQL非常陌生(就像我在我的工作中痛苦地教自己“数据库管理”几周一样......)而且我有点蠢。我有一个包含邮政编码列的表格,但导入到此数据库的数据不正确,我们有大量的邮政编码,四位数与五位数(前导0被省略)。

我设法得到一个脚本工作,用一个正确的五位邮政编码取代已知的四位数邮政编码,但问题是我们有几十万个条目,我无法通过它们实际翻阅所有找到每个带有四位数的条目并加上零。

我已经复制了数据库并且已经破坏了几次尝试使一些语法工作,但实际上我正在寻找一个快速修复,只需在任何四位数邮政编码中添加0,同时保留任何五位数的邮政编码单独

有没有办法可以简单地让一个SQL脚本使用通配符来表示四位数是什么,并在开始时加零?我在这个地方乱了45分钟(http://www.w3schools.com/sql/sql_wildcards.asp),试图让事情无济于事。

非常感谢任何能够提供帮助的人。

相关信息:

  • 表:tbl_Address
  • 列:ReceiverPostalCode
  • 错误的邮政编码:8481(应为08481),8638(应为08638)等
  • 正确的邮政编码:20872,27501,90039等

最佳, 史蒂夫

1 个答案:

答案 0 :(得分:2)

假设没有拉链超过5个字符,您可以这样做:

update tbl_Address
set ReceiverPostalCode = right(concat('00', ReceiverPostalCode ), 5) 
where len(ReceiverPostalCode) between 3 and 4