Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL条件AND子句_Sql_Sql Server - Fatal编程技术网

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
我的目标是根据@RequireApproval的值,使SQL最终成为以下任意一种类型。这可能吗

-- 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