Where子句中的T-SQL案例条件

use*_*273 1 sql t-sql sql-server

我试图做这个查询,我有一个where子句.问题是我需要在where条件下使用运算符IN但我无法弄清楚我错过了什么.

有人可以帮忙吗?

这是我的查询

DECLARE @OP INT = 1
SELECT * FROM Table
WHERE
Table.[status] IN (CASE WHEN @OP = 1 THEN (5,6) ELSE (12) END)
Run Code Online (Sandbox Code Playgroud)

Ste*_*han 7

不需要案例陈述.

DECLARE @OP INT = 1;
SELECT * FROM Table
WHERE (@OP = 1 AND Table.[status] IN (5,6))
OR (@OP !=1 AND Table.[status] IN (12))
Run Code Online (Sandbox Code Playgroud)