3

目標

に変換9999999999999-999ます。

問題

構文がわかりません。

もう考えたこと

FORMAT()関数を使用することを考えていましたが、 DECIMALの代わりにINTを使用しています。

私のクエリ

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

それで、それだけです。誰かが私に何か考えがありますか?

4

3 に答える 3

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 に答える