在SQL Server中选择具有多个行条件的记录

德伯特瓦

我有这样的桌子

ID          Day  Start End
----------- ---- ----- -----
1           M    7:30  9:30
2           T    7:30  11:30
3           T    12:30 14:30

还有另一个像这样的桌子

Day  Start End
---- ----- -----
M    8:30  11:30
T    8:30  10:30

我想从基于第二个表的第一个表中选择所有记录。

结果示例:

ID          Day  Start End  
----------- ---- ----- -----
1           M    7:30  9:30 
2           T    7:30  11:30

结果是这样的,因为第一个表中的前2个记录与第二个表中的条件匹配。第一排和第二排具有同一天,时间与另一排发生冲突。

乔基·纳库里(Giorgi Nakeuri)

此联接将起作用:

select * 
from t1
join t2 on t1.day = t2.day and t1.end >= t2.start and t1.start <= t2.end

如果是时间列,则varchars需要转换为time

select * 
from t1
join t2 on t1.day = t2.day and 
           cast(t1.end as time) >= cast(t2.start as time) and 
           cast(t1.start as time) <= cast(t2.end as time)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在SQL中选择具有循环条件的记录

在SQL Server中选择多个条件

从Spark数据框或sql中选择多个具有首选项层次结构的记录

SQL PHP在同一查询中选择具有多个条件的列

具有多个不同条件的 SQL 选择

SQL Server:从具有多个订单的多个客户中选择最大的订单总数,并且每个订单上有多个项目

在SQL中选择每第n条具有条件的行

如何在SQL中选择具有特定条件的n%个随机行?

SQL Server:从具有相同标识符的两行中选择一行

如何在SQL Server的表的所有列中选择具有空值的行?

SQL Server 中具有多个 where 条件的相同选择条件

在sql中选择具有不同状态条件的列

sql从具有日期范围条件的表中选择

SQL Server:仅选择具有多个列的记录的第一个实例

在SQL Server中选择具有第二最低排名的行

如何避免在sql server中选择具有特殊符号的行

SQL Server:从表中标识不同的表中选择具有不同标识的随机行

如何从sql server中选择具有最大值的数据行?

在特定列SQL Server中选择具有最大值的行

访问SQL从条件中选择最新记录

如何在SQL中选择具有较高值的行?

在SQL Server中选择最新插入的记录

如何有条件地从SQL Server选择记录

SQL选择查询具有多个条件的问题

具有多个条件和子选择的SQL查询

具有多个动态条件的 SQL 查询选择

在 SQL 中的多行中选择具有或不具有特定条件的组

SQL Server-汇总具有多个条件的表中每一行的SUM

在单行中选择多个值-SQL Server