SQLサーバーで、数字がある場合、n
SQLn>=0 and n<=100
で文字列にキャストする方法は?
1 => '01'
2 => '02'
...
10 => '10'
99 => '99'
それはprintfのようなものです。
printf ('%2d", n);
SQLサーバーで、数字がある場合、n
SQLn>=0 and n<=100
で文字列にキャストする方法は?
1 => '01'
2 => '02'
...
10 => '10'
99 => '99'
それはprintfのようなものです。
printf ('%2d", n);
n が厳密に100未満である限り、使用できます。
RIGHT(100+n,2)
SQL Server 2012 では、FORMAT も使用できます。次のようにすると、100 に対して '100' が返されます。
FORMAT(n,'00','en-US')
さらに別のアプローチ (99 より大きい数値をどのように処理するか不明):
DECLARE @numbers AS TABLE(Val INT)
INSERT INTO @numbers VALUES(1)
INSERT INTO @numbers VALUES(2)
INSERT INTO @numbers VALUES(10)
INSERT INTO @numbers VALUES(11)
INSERT INTO @numbers VALUES(98)
INSERT INTO @numbers VALUES(99)
INSERT INTO @numbers VALUES(100)
SELECT REPLACE(STR(Val, 2), ' ', '0') FROM @numbers
%2d
2 digit
SQLサーバーでフォーマットに変換する必要があります
これを試して
Declare @val int
set @val=1
SELECT RIGHT('0' + CAST(@val AS VARCHAR(2)), 2)
結果 :-
01
0 to 100
usecase
ステートメント間の数字をチェックするために
SELECT case when @val>0 and @val<100 then
RIGHT('0' + CAST(@val AS VARCHAR), 2)
else
NULL
END
select RIGHT('00'+ convert(varchar, @val), 3)
これを行う:
DECLARE @table AS TABLE(n INT)
INSERT INTO @table
VALUES(1),(3),(5),(9),(10),(50),(99),(100)
Select Case When n<10 Then '0'+Cast(n as varchar(10)) Else Cast(n as varchar(10)) End From @table