データベースを扱っていると、「数値を0埋めしたい」となる場面が多々あります。例えば、商品コードや伝票番号など、一律の桁数で統一したい場合に0埋めが必要になります。
SQLServerでは、数値を0埋めをする方法がいくつか存在し、使用するSQLServerのバージョンや要件によって適切な方法を選ぶ必要があります。
本記事では、SQLServerで数値を0埋めする方法について詳しく解説し、状況に応じた適切な手法を紹介します。
0埋めとは?
0埋めとは、数値を特定の桁数に揃えるために、数値の前に「0」を追加する処理のことを指します。
このようなフォーマットの統一は、商品コード、伝票番号、会員IDなど、データの生合成を維持するために広く活用されています。SQLServerでは、さまざまな方法でこの0埋めを実現できます。
0埋めを行う方法
SQLServerでは、数値を0埋めする方法が複数存在します。バージョンによって使用できる関数が異なるため、それぞれの方法を紹介します。
FORMAT関数を使う
FORMAT
関数を使うと、数値を簡単に0埋めされた文字列に変換できます。
構文
SELECT FORMAT(数値, '0000') AS ZeroPaddedValue;
使用例
SELECT FORMAT(7, '0000') AS ZeroPaddedValue;
実行結果
ZeroPaddedValue
---------------
0007
ポイント
- シンプルな構文で直感的に使える
FORMAT
関数はNVARCHAR
を返すため、INT
型のままでは使えない- SQL Server 2012 以降で使用可能
RIGHT関数を使う
RIGHT
関数を使用すると、0埋めを手軽に実現できます。
SELECT RIGHT('0000' + CAST(数値 AS VARCHAR), 4) AS ZeroPaddedValue;
使用例
SELECT RIGHT('0000' + CAST(15 AS VARCHAR), 4) AS ZeroPaddedValue;
実行結果
ZeroPaddedValue
---------------
0015
ポイント
- すべてのSQL Serverバージョンで使用可能
VARCHAR
型を使用するため、INT
型のままでは処理できない- 固定桁数が決まっている場合に便利
STR関数を使う
STR
関数を使うと、数値を指定の桁数に整形できます。ただし、デフォルトでは空白で埋められるため、REPLACE
を併用します。
SELECT REPLACE(STR(数値, 4), ' ', '0') AS ZeroPaddedValue;
使用例
SELECT REPLACE(STR(9, 4), ' ', '0') AS ZeroPaddedValue;
実行結果
ZeroPaddedValue
---------------
0009
ポイント
INT
型を直接処理できる- デフォルトでは空白埋めのため
REPLACE
が必要 - 固定桁数でのフォーマットに適している
CNCAT + REPLICATE を使う
REPLICATE
関数を使うと、任意の桁数の0を簡単に追加できます。
SELECT CONCAT(REPLICATE('0', 指定桁数 - LEN(数値)), 数値) AS ZeroPaddedValue;
使用例
SELECT CONCAT(REPLICATE('0', 4 - LEN(22)), 22) AS ZeroPaddedValue;
実行結果
ZeroPaddedValue
---------------
0022
ポイント
- すべてのバージョンで使用可能
INT
型のまま処理ができる- 可変長の0埋めを行う場合に便利
0埋めを活用した実践例
0埋めは、データを統一したフォーマットで扱うために役立ちます。ここでは、具体的な活用例を紹介します。
商品コードや伝票番号の統一
ECサイトや在庫管理システムでは、商品コードや伝票番号を一定の桁数に揃えることが一般的です。
例:商品コードを5桁に統一する場合
SELECT RIGHT('00000' + CAST(123 AS VARCHAR), 5) AS ProductCode;
実行結果
ProductCode
------------
00123
ポイント
- 右側の
RIGHT
を使うことで、桁数が不足した場合に自動で0埋めされる。 - 商品コードを一貫したフォーマットで表示できる。
まとめ
本記事では、SQL Serverで数値を0埋めする方法について解説しました。
0埋めは、商品コードや会員ID、伝票番号などのデータを統一フォーマットで扱う際に役立ちます。使用するSQL Serverのバージョンや要件に応じて、おすすめの方法を下記にまとめておきます。
最適な方法の選び方
- SQL Server 2012 以降を使っている場合 →
FORMAT
関数が簡単でおすすめ - すべてのバージョン →
RIGHT + CAST
やSTR + REPLACE
を使用 - 動的な桁数の0埋めが必要な場合 →
CONCAT + REPLICATE
が適している
用途に応じて適切な方法を選択し、統一されたデータフォーマットを維持しましょう!
コメント