2

incaseステートメントに基づいてコマンドを使用することは可能ですか

私はこのようなことを試しました

@Id int

Select * 
From Table 
Where  StatusId in( case when Id =1 then 1 else 1,3 end)

    Select * 
    From Table 
    Where  StatusId in case when Id =1 then (1) else (1,3) end

何か案は!!

4

3 に答える 3

3

いいえ、別の方法でこれを解決する必要があります。

Where (Id = 1 and StatusId in (1)) or (Id <> 1 and StatusId in (1, 3))

このパターンのバリエーションが可能です。

于 2012-09-25T14:09:41.407 に答える
2

あなたの例では、次のように簡単に実行できます。

where StatusId = 1 or (Id <> 1 and StatusId = 3)
于 2012-09-25T14:10:53.873 に答える
-1

MySQL では、次のようなクエリが機能します。

Select * from 
Table
where case when Id = 1 then StatusId = 1
    else StatusId in (1,3) end;

これを試して、うまくいったかどうか教えてください、ありがとう

于 2012-09-25T14:21:33.953 に答える