首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在sql server中选择具有多行条件的记录

在sql server中选择具有多行条件的记录
EN

Stack Overflow用户
提问于 2015-11-02 04:44:22
回答 1查看 79关注 0票数 0

我有一张这样的桌子

代码语言:javascript
运行
复制
ID          Day  Start End
----------- ---- ----- -----
1           M    7:30  9:30
2           T    7:30  11:30
3           T    12:30 14:30

再来一张这样的桌子

代码语言:javascript
运行
复制
Day  Start End
---- ----- -----
M    8:30  11:30
T    8:30  10:30

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

举例结果:

代码语言:javascript
运行
复制
ID          Day  Start End  
----------- ---- ----- -----
1           M    7:30  9:30 
2           T    7:30  11:30

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-02 04:48:10

这一联接将起作用:

代码语言:javascript
运行
复制
select * 
from t1
join t2 on t1.day = t2.day and t1.end >= t2.start and t1.start <= t2.end

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

代码语言:javascript
运行
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33470909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档