SQL Server 2000の「キーワード 『CASE』の近くに不正な構文」
-
12-09-2019 - |
質問
エラーは、次のストアドプロシージャを実行しようとするときに戻ります。
EXECUTE p_someProc
--list of vars
CASE WHEN @var1=1 AND @var2=1 THEN 3
WHEN @var2=1 THEN 2
WHEN @var1=1 THEN 1 END,
--more vars
単一のエラーが最初のケースを指している最大吐き出しているが他のCASE機能があり、含まれています。
同じ式がPRINT関数内で実行されると、期待どおりの結果が返されます。
declare @var1 bit set @var1 = 1
declare @var2 bit set @var2 = 1
print(CASE WHEN @var1=1 AND @var2=1 THEN 3
WHEN @var1=1 THEN 2
WHEN @var2=1 THEN 1 END)
出力が '3' である
私は何とかCASE機能を悪用していていることを前提としています。誰もがこの問題を回避するか、それを修正する方法を考えるだろうか?
事前に感謝します。
- スタン
解決
JeremyMcGeeはあなたではなく幹部にケースを渡そうよりも、割り当てを実行する必要がある上に暗示
として、より多くのような何かをしようと、次の
Declare @varx int
select @varx = CASE WHEN @var1=1 AND @var2=1 THEN 3
WHEN @var2=1 THEN 2
WHEN @var1=1 THEN 1 END
EXECUTE p_someProc @varx
他のヒント
ハードはより多くのコードなしで指示します。 @のVAR1と@のVAR2は、おそらく、宣言されていることを確認してください?
あなたも、何かにCASEの結果を代入していることを確認します!
所属していません StackOverflow