FORMAT関数でゼロ埋め(ゼロパディング)する
--NULLはNULLのまま返す
SELECT FORMAT(<列名> 'D<桁数>') FROM <テーブル名>
--NULLをゼロにする
SELECT FORMAT(ISNULL(<列名>, 0), 'D<桁数>') FROM <テーブル名>
--NULLを空文字列にする
SELECT ISNULL(FORMAT(<列名>, 'D<桁数>'), '') FROM <テーブル名>
- 'D<桁数>' の部分は 5桁の場合、'D5' です。'D5' の代わりに '00000' でも動作します。
- FORMAT関数が使用できるかは SQL Server が動作している OS の .NET Framework 共通言語ランタイム (CLR) に依存します。
- FORMAT関数 に NULL を渡すと、NULLが返ります。
- NULLをゼロにする場合、ISNULL 関数で NULL を 0 に変換してから FORMAT します。
サンプルSQL
次のサンプルは FORMAT関数 を使用し、Point列 を 5桁にゼロ埋めしています。--5桁にゼロパディング
SELECT
[Point] 元の数値
,FORMAT([Point], 'D5') NULLはNULLのまま返す
,FORMAT(ISNULL([Point], 0), 'D5') NULLをゼロにする
,ISNULL(FORMAT([Point], 'D5'), '') NULLを空文字列にする
FROM [SampleTable]

RIGHT関数でゼロ埋め(ゼロパディング)する
サンプル中の '00000' は、ゼロ埋めしたい桁数に合わせてください。例えば、8桁にしたい場合は '00000000' です。--NULLはNULLのまま返す
SELECT RIGHT('00000' + CAST(<列名> AS VARCHAR), <桁数>) FROM <テーブル名>
--NULLをゼロにする
SELECT RIGHT('00000' + ISNULL(CAST(<列名> AS VARCHAR), ''), <桁数>) FROM <テーブル名>
--NULLを空文字列にする
SELECT ISNULL(RIGHT('00000' + CAST(<列名> AS VARCHAR), <桁数>), '') FROM <テーブル名>
-
CAST関数 で 数値を 文字列に変換します。
123 -> '123'
-
文字列に変換した数値 の 先頭に、桁数分の '0' を結合します。
'123' -> '00000123'
-
RIGHT 関数を使用し、右側から 桁数分、文字列を切り出します。
'00000123' -> '00123'
サンプルSQL
次のサンプルは CAST関数 と RIGHT関数を使用し、Point列 を 5桁にゼロ埋めしています。--5桁にゼロパディング
SELECT
[Point] 元の数値
,RIGHT('00000' + CAST([Point] AS VARCHAR), 5) NULLはNULLのまま返す
,RIGHT('00000' + ISNULL(CAST([Point] AS VARCHAR), ''), 5) NULLをゼロにする
,ISNULL(RIGHT('00000' + CAST([Point] AS VARCHAR), 5), '') NULLを空文字列にする
FROM [SampleTable]

参考資料
- Microsoft 公式ドキュメント - FORMAT(Transact-SQL)
- Microsoft 公式ドキュメント - RIGHT(Transact-SQL)
- Microsoft 公式ドキュメント - CAST および CONVERT(Transact-SQL)
- Microsoft 公式ドキュメント - ISNULL(Transact-SQL)
検証環境
- Microsoft SQL Server 2022 (RTM-CU5) (KB5026806) - 16.0.4045.3 (X64) May 26 2023 12:52:08 Copyright (C) 2022 Microsoft Corporation Express Edition (64-bit) on Linux (Ubuntu 20.04.6 LTS) <X64>
- Docker image: mcr.microsoft.com/mssql/server:2022-latest
- Docker Desktop 4.21.1(114176)
- Docker Compose v2.19.1
- Docker Engine 24.0.2
- Microsoft SQL Server Management Studio v19.0.1(19.0.20200.0+9286509b)
- Windows 10 Enterprise Version 22H2 OS Build 19045.3086 Experience: Windows Feature Experience Pack 1000.19041.1000.0