sql - SQL WHERE 子句使用 AND 但不使用 OR
问题描述
我有下面的 SQL 查询,它根据 WHERE 子句中的日期字段过滤掉记录。我有两个不同的日期属性。
SELECT * FROM MY_TABLE WHERE DATE1 >= '2002-01-01' OR DATE2 >= '2002-01-01';
此 SQL 给出数据读取错误。但是当我用它替换OR
它时,AND
它工作正常。
如何过滤记录以选择任何一个日期大于某个任意日期的记录?
编辑1
我觉得我的问题很不完整。我正在使用 apache 钻查询引擎。另外,实际查询是两个表的连接,其中 2 个日期列位于两个不同的连接表中,如下所示
SELECT
A.id AS my_id,
B.is_active is_active,
C.other_id AS id2
FROM
A
INNER JOIN B ON A.id = B.id
INNER JOIN C ON C.id = A.id
WHERE
A.date >= '2002-01-01' OR
B.date >= '2002-01-01';
编辑2
以下是我的错误信息
SQL Error: DATA_READ ERROR: The JDBC storage plugin failed while trying setup the SQL query.
解决方案
好吧,我尝试了一些建议,例如转换数据类型和使用正确的日期文字,但这些都不起作用。但是,如果我从查询中完全删除第三个表,它就可以工作。不知道为什么会这样,但我总是可以在创建临时表后加入第三张表,所以我认为这解决了我的问题。基本上有效的查询如下:
SELECT
A.id AS my_id,
B.is_active is_active
FROM
A
INNER JOIN B ON A.id = B.id
WHERE
A.date >= '2002-01-01' OR
B.date >= '2002-01-01';
推荐阅读
- swift - 音频波形和绘制网格线 - 线随时间漂移
- anylogic - 在运行时连接 FluidEnter/FluidExit
- java - 如何使用 Docker 确定 Java 微服务的堆/非堆大小?
- python - 逻辑不起作用 - 将值与列表中的年龄匹配
- .net - 使用官方 microsoft dotnet docker 镜像在 linux 上构建 dotnet
- python - 如何遍历 URL 列表并发出 GET 请求
- docusignapi - 演示帐户问题:帐户无权在文档上设置“显示”或“签名者穆堆栈知识”属性
- python - 如何将变量评估为 Python f 字符串
- r - R如何执行“特定”采样
- python - lmfit 对复杂方程/数据进行最小化(或 scipy.optimize leastsq)