先頭が 0 の郵便番号と数値

郵便番号のように先頭が 0 の値を数値にすると桁が失われます。0 で始まる値だけが文字列になり、ほかの数値の形は引用符なしで出力される境界の例です。

入力

CSV

code
007
0
-1.5e3
1.

INSERT 先の表名

t

区切り文字

カンマ(,)

1 行目は見出し(列名)

はい

空欄の値

NULL にする

数字の値

数値として出力(先頭が 0 のものは除く)

列名・表名の大文字・小文字

小文字にする(引用符なしの名前の既定)

文の形

1 つの INSERT に全行を並べる

結果

エラー 0 件・警告 0 件・情報 1 件

指摘(エラー・警告・情報)

  • 情報 値 先頭が 0 の数字 1 件は、桁を失わないよう文字列('007' など)として出力しました。
表名t
列数1 列
出力した行4 行
NULL にした値0 個
数値として出力した値2 個
出力しなかった行0 行

INSERT 文

INSERT INTO t (code) VALUES
  ('007'),
  (0),
  (-1.5e3),
  ('1.');

検算(この結果になる理由)

007 は先頭が 0 なので '007' と文字列にします。0 と -1.5e3 は 4.1.2.6 の数値定数の形で、引用符なしです。末尾が小数点の 1. は安全側で文字列に出力します。先頭 0 の件数を知らせる情報が 1 件出ます。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • 出力した文は、本番のデータベースへ実行する前にテスト用の環境で確かめてください。表の定義(列の型・制約)に合わない値は実行時に失敗します。
  • ツール内の予約語の一覧は PostgreSQL 18 のドキュメントにもとづきます。バージョンによって予約語が異なる場合は、念のため二重引用符で囲んでください。

ほかの入力例