用于标准化邮政编码的SQL

时间:2011-05-26 22:28:09

标签: sql-server

我在SQL Server中有一个包含PostalCode列的表。此处的数据未标准化 - 有时邮政编码显示为H0H 0H0,其他时间为H0H0H0。仅使用SQL,我如何确保每个邮政编码标准化为H0H 0H0?

2 个答案:

答案 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()