1

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)));
4

2 に答える 2

2

値に 10000 を追加すると、数値に最初に余分なゼロが含まれ、次にそれを varchar としてキャストし、最後の 4 つだけを使用すると、追加された 10000 が無視されます。これには、すべての数値が 0 から 9999 の間である必要があります。

declare @value int = 100

select 'D' + right(cast(@value + 10000 as varchar(5)), 4)
于 2013-06-04T14:41:25.803 に答える
0

このイラストボードは、適切なキャスティングの練習をしたいときに役立ちます..

これは、SQL Server システム提供のデータ型で許可されているすべての明示的および暗黙的なデータ型変換を示しています。これらには、xml、bigint、および sql_variant が含まれます。sql_variant データ型からの割り当てには暗黙的な変換はありませんが、sql_variant への暗黙的な変換はあります。

次の図は、SQL Server システム提供のデータ型に対して許可されているすべての明示的および暗黙的なデータ型変換を示しています。 これらには、xml、bigint、および sql_variant が含まれます。 sql_variant データ型からの割り当てには暗黙的な変換はありませんが、sql_variant への暗黙的な変換はあります。

ここからダウンロードできますhttp://www.microsoft.com/en-us/download/details.aspx?id=35834

于 2013-06-04T15:11:37.953 に答える