t-sql - 条件/可选 where 语句

标签 t-sql dynamic where-clause

我有一个存储过程和一些 bool 变量(Bit)。
如果某个变量为 False,我想放置一个 WHERE 语句。

我知道我可以做这样的事情:

IF (@myBoolean = 1)
BEGIN
SELECT * FROM myTable
END
ELSE
SELECT * FROM myTable WHERE myTable.Foo = 'Bar'

有没有办法使 WHERE 语句成为可选的?因为我有很多 bool 变量,所以我不想对每种可能性进行不同的查询。
这就是我的想法(我知道这行不通):

SELECT * FROM myTable 
CASE WHEN @myBoolean = 0 
THEN WHERE myTable.Foo = 'Bar'
ELSE --Do nothing

最佳答案

SELECT * FROM myTable
where ( @myboolean = 1 and foo = 'bar' ) or @myboolean = 0

关于t-sql - 条件/可选 where 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16306144/

相关文章:

在 WHERE 中使用 "OR"时 MySQL 不使用索引

MySQL 使用 WHERE 子句直接 INSERT INTO

MYSQL:在 SELECT 中对自己定义的参数执行 where

sql-server - Visual Studio 数据库项目无法识别 ELASTIC_POOL

c++ - 动态数组 C++ 的 Valgrind 内存泄漏

php - 在 PHP 中获取一个类的所有实例

javascript - vue.js:从字符串创建组件

sql-server - 从sql server中复杂的xml中选择数据

sql-server - 使用 T-SQL 查找大约重复的数据库记录?

sql-server - TSQL 从 "seed"日期开始每隔一个星期五确定一次