gpt4 book ai didi

sql - 动态跳过 Where 子句

转载 作者:搜寻专家 更新时间:2023-10-30 21:46:57 24 4
gpt4 key购买 nike

是否可以动态跳过where子句?

我正在努力实现同样的目标。

select count(*)
into user_count
from mstuser a
where ((gender_compare is not null or gender_compare != '')
and upper(a.gender)=upper(gender_compare))
and (age_compare_group is not null or age_compare_group != '')
and (MONTHS_BETWEEN(sysdate, a.dob) / 12
between substr(age_compare_group, 0, INSTR(age_compare_group, '-') - 1)
and substr(age_compare_group, INSTR(age_compare_group, '-') + 1)))

但是好像不行。

我想要的是:

如果值 gender_compareage_compare_group 都为 null,它应该给出所有结果。如果其中任何一个不为空,那么它应该根据查询的 where 部分显示结果。

让我知道我是否可以为此做一些其他事情。

最佳答案

看起来你要做的是将你的情况分成两组

WHERE (gender_compare IS NULL OR gender_compare = '')
OR (<the rest of condition>)

如果 genter_compare IS NULL 的计算结果为 TRUE,则整个条件将为 TRUE,因此 WHERE 子句将等同于 WHERE TRUE,相当于根本没有 WHERE 语句。

否则,第二个条件有效。

关于sql - 动态跳过 Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20344877/

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