gpt4 book ai didi

java - 当 IN 运算符和 BETWEEN 值为空时,如何使查询返回所有行

转载 作者:行者123 更新时间:2023-11-29 20:52:30 26 4
gpt4 key购买 nike

有点困惑

我有一个查询,我必须获取一些客户值,为此,将获取一些客户 ID 作为输入,它看起来像这样

SELECT * FROM CUTOMER WHERE CUTOMER_ID IN ('1','2');

但有时在这种情况下不会选择客户 ID,必须返回所有行。

我在开始日期和结束日期之间也遇到类似的问题,有时提供开始日期和结束日期,但有时当未选择它们时我应该返回所有行

有人可以帮我处理案件吗?

提前致谢

最佳答案

一种解决方案是使用 LEFT JOIN。首先,您必须编写一个查询来返回您正在搜索的所有值:

SELECT 1 AS CUSTOMER_ID
UNION ALL SELECT 2

(这可以是动态的)那么您可以使用 LEFT JOIN:

SELECT
s.CUSTOMER_ID,
c.*
FROM
(SELECT 1 AS CUSTOMER_ID
UNION ALL SELECT 2) s
LEFT JOIN CUTOMER c
ON s.CUSTOMER_ID = c.CUSTOMER_ID

左连接将返回第一个查询中的所有行,并且仅返回第二个查询中匹配的行,否则将返回 null。

关于java - 当 IN 运算符和 BETWEEN 值为空时,如何使查询返回所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37916692/

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