D
長さが 4 未満の数字の先頭ゼロと先行ゼロを使用して文字列をフォーマットする方法。例えば:
D1000
為に1000
D0100
為に100
キャストとstuff
関数を操作しようとしましたが、期待どおりに機能しませんでした。
SELECT STUFF('D0000', LEN(@OperatingEndProc) - 2, 4, CAST((CAST(SUBSTRING(@OperatingEndProc, 2, 4) AS INT) + 1) AS VARCHAR(10)));
D
長さが 4 未満の数字の先頭ゼロと先行ゼロを使用して文字列をフォーマットする方法。例えば:
D1000
為に1000
D0100
為に100
キャストとstuff
関数を操作しようとしましたが、期待どおりに機能しませんでした。
SELECT STUFF('D0000', LEN(@OperatingEndProc) - 2, 4, CAST((CAST(SUBSTRING(@OperatingEndProc, 2, 4) AS INT) + 1) AS VARCHAR(10)));
値に 10000 を追加すると、数値に最初に余分なゼロが含まれ、次にそれを varchar としてキャストし、最後の 4 つだけを使用すると、追加された 10000 が無視されます。これには、すべての数値が 0 から 9999 の間である必要があります。
declare @value int = 100
select 'D' + right(cast(@value + 10000 as varchar(5)), 4)
このイラストボードは、適切なキャスティングの練習をしたいときに役立ちます..
これは、SQL Server システム提供のデータ型で許可されているすべての明示的および暗黙的なデータ型変換を示しています。これらには、xml、bigint、および sql_variant が含まれます。sql_variant データ型からの割り当てには暗黙的な変換はありませんが、sql_variant への暗黙的な変換はあります。
ここからダウンロードできますhttp://www.microsoft.com/en-us/download/details.aspx?id=35834