从日期中选择特定记录的 SQL 查询
Posted
技术标签:
【中文标题】从日期中选择特定记录的 SQL 查询【英文标题】:SQL Query to select specific records from dates 【发布时间】:2021-12-03 11:50:00 【问题描述】:我有一个表格,其中包含代码列表以及代码处于活动状态的开始和结束日期。我想选择最近的活动代码。这很简单,但我遇到的部分是您可以拥有具有重叠日期的相同代码,这意味着两者都是活动的,我需要选择所有这些记录。或者您可以使用相同的代码,但日期紧随其后,这意味着之前的代码不再有效,我想忽略它。
见下表示例:
在下表中,如果您有两个相同的代码,但日期紧随其后,那么我基本上需要说这张表好,然后取最近的,如果日期重叠,则选择...
ID | Code | Start Date | End Date | I need to select
01 | A110 | 15/01/21 | NULL | select
02 | A110 | 14/05/19 | NULL | select
03 | A110 | 10/10/18 | 13/05/19 | Ignore
03 | B200 | 15/01/21 | NULL | select
04 | B200 | 10/12/20 | 14/01/21 | Ignore
05 | C600 | 15/01/21 | NULL | Select
【问题讨论】:
嗨,请指定您正在使用的 DBMS 以及您尝试过的查询 【参考方案1】:在我看来是这样的
SELECT *
FROM TABLE
WHERE END_DATE IS NULL
但也许我问错了,目前还不清楚
【讨论】:
好像反过来了,WHERE end_date IS NULL
@Max 我看到忽略结束日期不为空的地方...
是的,OP 显然想要结束数据为 NULL 的所有条目。距离我的主要 SQL 时代已经有一段时间了,但如果我没记错的话,SELECT * FROM table WHERE end IS NULL;
=> 忽略所有 end 不为空的条目
我真的搞错了,对不起以上是关于从日期中选择特定记录的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章