原谅我。。。我是这个领域的笨蛋。我已经在google上搜索过了,但是我不能完全确定我找到的信息,因为它与我的用例不完全匹配。
在我的数据库中,我有一个带有地址的accounts表。地址分为街道、城市、州、国家和邮政编码。所有东西都是从一个csv文件中导入的,这个文件在每个数字上都去掉了前导的0。。。一些邮政编码有前导零(例如新泽西州),因此从数据库中提取的应用程序在打开这些帐户时抛出一些错误。列已经是varchar,因此查找和替换应该非常简单。我只需要将零添加到包含4个字符的字符串中。理论上,我可以这样做:
UPDATE account SET columnName=postalcodes(nums,5,0);
问题是,少数账户也有4位数的邮政分机。这样做(据我所知)会破坏那些领域。。。还是我错了?
所以基本上,在这种情况下,我该如何做一个更新,仅当字段长度为4个字符时才添加一个零?
2条答案
按热度按时间mf98qq941#
使用
lpad()
:这左垫线
0
如果长度小于5个字符,则返回s(请注意,如果字符串长度超过5个字符,则会截断为目标长度)。de90aj5v2#
不知道如何具体地对评论进行投票,但斯宾塞7589和gmb提供了帮助。我用了这个:
基本上,我确实按照斯宾塞7593的建议选择了要修改的数据。一旦我确信这样做是安全的,我就使用where来挑选4个字符或更少的字段(也是由spencer7593建议的)和gmb建议的lpad(因为我误解了我复制的原始查询)。
谢谢你们!