【SQLServer】数値の0埋めをする方法を解説!

スポンサーリンク

データベースを扱っていると、「数値を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 + CASTSTR + REPLACE を使用
  • 動的な桁数の0埋めが必要な場合CONCAT + REPLICATE が適している

用途に応じて適切な方法を選択し、統一されたデータフォーマットを維持しましょう!

コメント