【发布时间】:2018-11-30 14:16:35
【问题描述】:
我正在努力解决这个问题。我正在处理邮政编码,但我正在尝试添加一个执行以下操作的整体功能:
如果您正在查看的字段为空白 (EMPTY),则返回/写入 (BLANK) 到新字段中。
目前正在发生以下情况:少于 5 个字符的所有内容都得到前导零,或者如果它为空白,则得到 00000。
update ImportStagingContact
set zip = '0' + zip
where len(zip) = 8
and ImportLogID = @nImportLogID
update ImportStagingContact
set zip = replace(zip, '-', '')
where len(zip) = 10
and charindex('-', zip) > 0
and ImportLogID = @nImportLogID
update ImportStagingContact
set zip = right('00000' + zip, 5)
where len(zip) < 5
and ImportLogID = @nImportLogID
update ImportStagingContact
set zip = left(zip, 5)
where len(zip) = 9
and ImportLogID = @nImportLogID
【问题讨论】:
-
您使用的是什么类型的 SQL? MS、MY 等?您也可以使用案例陈述并进行一次更新(可能因您的技术而异)。这会做你需要的。当您进行上述更新时,如果第一次更新运行,那么第二次更新仍然可以在相同的记录上再次运行,如果您使用不会发生的 case 语句
-
我在我的回答中添加了一个更新,要求澄清
-
样本数据和期望/实际结果真的很有帮助——连同数据库标签。