私は次のクエリを使用して「パンチにわたり署名」に反するためにクエリを記述しようとしています:署名付きオーバーパンチを使用しているときに、私のcase文が計算に使用できないのはなぜですか?
SELECT
CASE when substring(MyField,16,1)='C' then cast(substring(MyField,9,7)+'0' AS decimal(20,2)*-1 FROM MyTable
ここではいくつかのサンプルデータがあります:
[email protected]@
上記のデータから、位置が開始7
の長さの1 の長さと位置9(0)で、他の開始と(「C」)16時しかし、私はこのエラーを取得しておいてください。
Msg 102, Level 15, State 1, Line 139
Incorrect syntax near '*'.
所望の出力: 00000063(C = 3)
私が間違って何をしているのですか?
パンチの上に署名するための参照用に、このページをご参照ください:
https://en.wikipedia.org/wiki/Signed_overpunch
あなたは '* -1'を持っていますか?代わりに平均 ')-1'? – jarlh
[case expression](https://msdn.microsoft.com/en-gb/library/ms181765.aspx)に「END」がありません。 –