数値や文字列を右詰して前を「0(ゼロ)」で埋める(T-SQL)

T-SQLの小ネタです。

数値や文字列を右詰して前を「0(ゼロ)」で埋めた文字列を作ります。

前回はC#でやってみたので今回はT-SQLです。

ichiroku11.hatenablog.jp

数値の右詰と0埋め

数値の場合はSQL Server 2012から追加されているFORMAT関数を使います。C#と同じような書式を指定できます。

-- 3桁の数値を右詰と0埋めして5桁に
declare @number int = 123;
print format(@number, N'd5');
print format(@number, N'00000');  -- またはこれ

-- 実行結果
-- 00123
-- 00123

SQL Server 2012以前は省略(・・・調べていません)。

参考

文字列の右詰と0埋め

文字列の場合はRIGHT関数を使って次のようにするといいみたいです。

-- 3桁の文字列を右詰と0埋めして5桁に
declare @text varchar(3) = N'123';
print right('00000' + @text, 5);

-- 実行結果
-- 00123
参考