我在SQL Server中有一个包含PostalCode列的表。此处的数据未标准化 - 有时邮政编码显示为H0H 0H0,其他时间为H0H0H0。仅使用SQL,我如何确保每个邮政编码标准化为H0H 0H0?
答案 0 :(得分:2)
嗯,对于初学者来说,这实际上取决于它是如何进入数据库的(即你应该控制如何在插入前输入和管理它)。但是为了更新你的表,你可以这样做,把它们放在正确的格式中,其间有空格:
Update MyTable Set PostalCode=SubStr(LTrim(PostalCode),0,3) || ' ' || SubStr(RTrim(PostalCode),-3,3);
这可能因实际的数据库引擎而异。在撰写本文时,OP尚未指明哪一个。
答案 1 :(得分:2)
如果您可以确定这些是唯一的两种格式:
select left(replace(post_code,' ',''),3) + right(replace(post_code,' ',''),3)
如果案例可以改变,请将结果包装在UPPER()
中