gpt4 book ai didi

mysql - 报表生成器中 WHERE 子句中的 SQL 可选条件

转载 作者:行者123 更新时间:2023-11-29 10:26:33 24 4
gpt4 key购买 nike

我正在使用 Microsoft Report Builder 3.0 创建报告。我想在 WHERE 子句中添加一个依赖于 bool 参数 @param 的附加条件。在编程中,通过附加 SQL 字符串会很容易,例如:

String sql = "SELECT * FROM tblA WHERE tblA.columnA = 'data' ";
if(param)
{
sql += "AND tblA.columnB IN (SELECT column FROM tbl)";
}

但是如何在纯 SQL 查询中做到这一点呢?我尝试使用 CASE 但似乎不起作用。这是我尝试过的:

SELECT * FROM tblA 
WHERE tblA.columnA = 'data'
CASE @param WHEN 1 THEN AND tblA.columnB IN (SELECT column FROM tbl) END

最佳答案

只需使用涉及参数的逻辑:

SELECT *
FROM tblA
WHERE
columnA = 'data' AND
(!param OR columnB IN (SELECT column FROM tbl));

如果 columnA 包含 data,并且该参数设置为 false,或者该参数已设置,则 WHERE 子句的计算结果将为 true为true,子查询成功。

关于mysql - 报表生成器中 WHERE 子句中的 SQL 可选条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48180760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com