如何在Where子句条件中动态编写删除条件

时间:2018-06-22 08:14:50

标签: sql dynamic conditional-statements

我有一个查询,如下所示:

SELECT * FROM mytable WHERE USER_ID = ?

然后使用准备好的语句设置USER_ID。有没有一种方法可以使用相同的查询和准备好的语句来检索数据而无需任何过滤?像followinf这样的东西?

SELECT * FROM mytable WHERE USER_ID = *

我想使用相同的查询和准备好的语句设置方法来获取与SELECT * FROM mytable等效的数据

我通过了SQL ANYALL,但是它们似乎并不能解决我的问题。

1 个答案:

答案 0 :(得分:4)

如果我理解正确,则可以使用这种条件。

将参数设置为默认值或选中@USER_ID,在此示例中,我将默认值设置为NULL。如果要获取所有数据,可以将@USER_ID设置为NULL,否则按userID

查询
DECLARE @USER_ID INT = NULL;

SELECT * 
FROM mytable
WHERE (@USER_ID IS NULL) OR USER_ID = @USER_ID

这是来自sql-server的示例

sqlfiddle