You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让使用OR条件的SQL查询仅返回单个日期的对应结果

SQL查询修改方案

你原SQL使用OR条件会匹配两个日期的所有符合记录,要仅返回单个日期的全部数据,可以根据你的实际使用场景选择对应修改方案:

场景1:固定返回指定的某一天数据

直接调整WHERE条件,仅保留你需要查询的日期匹配规则即可,比如固定返回2021-04-22的所有工时记录:

SELECT Day, Hours
FROM Hours
WHERE Day = #2021-04-22#;

场景2:动态优先返回存在数据的日期

优先返回2021-04-22的全部记录,若当天无任何数据才返回2021-04-23的记录,适配你原使用的Access SQL语法写法如下:

SELECT Day, Hours
FROM Hours
WHERE Day = IIF(
    EXISTS(SELECT 1 FROM Hours WHERE Day = #2021-04-22#),
    #2021-04-22#,
    #2021-04-23#
);

场景3:随机返回两个日期中的任意一个的全部数据

每次查询时随机从两个指定日期中选一个返回对应全部记录:

SELECT Day, Hours
FROM Hours
WHERE Day = IIF(
    RND() < 0.5,
    #2021-04-22#,
    #2021-04-23#
);

语法适配说明

如果你使用的是非Access数据库(比如MySQL、SQL Server),仅需要做两处调整即可:

  • 日期两侧的#替换为单引号'
  • IIF函数替换为标准SQL的CASE WHEN语法

内容的提问来源于stack exchange,提问作者Andrew Overs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:48:00