SQLでの0埋めにはlpad ゼロパディングのサンプルコード集
  • facebookページ
  • twitterページ
  • 2020.04.17

    SQLでの0埋めにはlpad ゼロパディングのサンプルコード集

    SQLで、指定した桁数を0で埋めるゼロパディング処理についてまとめています。

    数値を指定桁数まで0で埋めるには、lpadを使う

    例えば、数値の1を4桁の0埋め(0パディング)して0001にするには、lpad関数が便利です。

    以下の書式で使用できます。

    MySQLで実際にSQLを実行してみましょう。

    MySQLの場合、テーブルの属性にZEROFILLを指定すると挿入された値が0埋めされて格納されます。

    自動的に数値が増えるincrement属性のカラムにたいしてもZEROFILL指定が可能です。以下は、increment属性のカラムidを持つテーブルにデータを挿入した例です。

    【関連記事】
    MySQLで利用可能な整数型について解説!int(11)のカッコに設定された数値って何?

    Oracleでの0埋めはlpad。 to_charでの0字詰めには半角空白が入る

    Oracleでもlpad関数で0埋めが可能です。

    Oracleでto_charを使って0字詰めをおこなうと、先頭に半角空白が入ります。以下の例は、文字列TESTに「1」の0字詰め「01」を結合しようとした例です。

    空白部分は符号が入るための領域です。数値がマイナスの場合は「-」が入ります。文字列操作関数などを使って符号部分を削除することも可能ですが、代わりにlpadもしくはrpadを使いましょう。rpadは右詰めの0パディングをおこなう関数です。

    PogureSQLもlpadで0埋めが可能。第一引数は文字列型にする必要あり

    PosgreSQLでもlpad関数が使用できます。ただし、第一引数は文字列型にする必要があります。

    第一引数に整数型を指定すると、以下のエラーが出力されます。

    SQL ServerはRIGHT関数やFORMAT関数で0埋めする

    SQL Serverには、ほかのDBMSにあるようなlpadやrpadなどの専用の字詰関数がありません。以下のようにright関数またはleft関数(右詰めの場合)を使います。

    また、日付やカンマ区切りに使うformat関数を使って0パディングが可能です。

    まとめ

     

    ポテパンダの一言メモ
    • MySQLなどではlpad関数で0埋めが可能
    • Oracleでは、to_char関数を使って0埋めすると半角空白が入るので、lpadを使う
    • PostgreSQLでは、lpad関数の第一引数を文字列型にする必要あり
    • SQL Serverでlpad関数は使えない。right関数やformat関数を使って0埋めする。


    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE