3

目标

转换9999999999999-999.

问题

我不知道语法。

我已经想到的

我正在考虑使用FORMAT()函数 - 但我正在使用INT而不是DECIMAL

我的查询

Select city.ZipCode As zipCode
From app_cities As city
Where city.Id = 1

就是这样了。有人对我有任何想法吗?

4

3 回答 3

4

使用INSERT()

select insert(ZipCode , 6, 0, '-') As zipCode
from app_cities As city
where Id = 1

SQLFiddle 演示

于 2013-07-22T15:21:37.030 回答
2

邮政编码的问题是可以有一个前导 0。所以邮政编码的长度可以是 7 位或 8 位。

因此,邮政编码可能是 02323-213 或 12133-333。作为 int,您将丢失第一个数字。

采用 Jurgen D 已经发布的内容并对其进行修改。

SELECT insert(LPAD(zipcode, 8, '0'), 6, 0, '-') from zipcodes;

SQL小提琴

于 2013-07-22T15:26:56.220 回答
0
select concat(substring(cast(999999999 as char),5),'-',
              (substring(cast(999999999 as char),6,4)));

小提琴

从表:

select concat(substring(cast(ZipCode as char),5),'-',
              (substring(cast(ZipCode as char),6,4)));
于 2013-07-22T15:25:02.583 回答