SQL条件AND子句
我想添加一个具有以下功能的条款:SQL条件AND子句,sql,sql-server,Sql,Sql Server,我想添加一个具有以下功能的条款: DECLARE @RequiresApproval BIT SET @RequiresApproval = 0 SELECT * FROM [user] u WHERE school_id = 1 这是我想要的逻辑 当@requiresprapproval=1时,则添加子句:AND approved=1 当@requiresprapproval=0时,则省略子句:和approved=1 我的目标是根据@RequireApproval的值,使SQL最终成为以
DECLARE @RequiresApproval BIT
SET @RequiresApproval = 0
SELECT * FROM [user] u
WHERE school_id = 1
这是我想要的逻辑
- 当@requiresprapproval=1时,则添加子句:AND approved=1
- 当@requiresprapproval=0时,则省略子句:和approved=1
-- when @RequiresApproval = 1, use this
SELECT * FROM [user] u
WHERE school_id = 1
-- when @RequiresApproval = 0, use this
SELECT * FROM [user] u
WHERE school_id = 1
AND approved = 1
嗯。这应该实现您的逻辑:
SELECT *
FROM [user] u
WHERE school_id = 1 AND
(@RequiresApproval = 0 or approved = 1);
您可以使用此查询-您只需要在两个条件之间使用
或
SELECT * FROM [user] u
WHERE school_id = 1
AND (approved = 1 OR @RequiresApproval = 0)
这也可以奏效
SELECT * FROM [user] u
WHERE [school_id] = 1 AND [approved] = 1
AND @RequiresApproval = 1
UNION
SELECT * FROM [user] u
WHERE [school_id] = 1 AND @RequiresApproval = 0