SQL条件和子句

Ada*_*itt 0 sql sql-server

我想添加一个执行以下操作的子句:

DECLARE @RequiresApproval BIT
SET @RequiresApproval = 0
SELECT * FROM [user] u
WHERE school_id = 1
Run Code Online (Sandbox Code Playgroud)

这是我想要的逻辑

  • 当@RequiresApproval = 1时,然后添加子句:AND approved = 1
  • 当@RequiresApproval = 0时,则省略条款:AND approved = 1

我的目标是让SQL最终得到以下任何一种,具体取决于@RequiresApproval的值.这可能吗?

-- 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
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 6

好.这应该实现你的逻辑:

SELECT *
FROM [user] u
WHERE school_id = 1 AND
      (@RequiresApproval = 0 or approved = 1);
Run Code Online (Sandbox Code Playgroud)