我有一张英国邮政编码表。它们全部采用不同的格式,有些用空格大写,有些则没有。我要做的是格式化它们,以便它们可以遵循英国邮政编码标准。例如AB1 2BB

我使用此查询的目的是可行的,但是某些邮政编码的第一部分更长或更短,因此并非所有人都能成功。

SELECT UPPER(INSERT((REPLACE(postcode , ' ', '')) , 4, 0, ' ')) AS postcode


但是,如果我尝试相反的方法

SELECT UPPER(INSERT((REPLACE(postcode , ' ', '')) , -4, 0, ' ')) AS postcode


它不起作用,并返回所有粘贴在一起的邮政编码,例如AB12BB

我要在最后3个字符前加一个空格。

最佳答案

我想你要:

select concat_ws(' ',
                 left(replace(postcode, ' ', ''), 3),
                 right(replace(postcode, ' ', ''), 3
                ) as standardized_postcode

关于mysql - 在最后三个字符前插入空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53592625/

10-10 21:45