在开始时间和结束时间之间选择开始时间 [英] Select start time between start and end time
本文介绍了在开始时间和结束时间之间选择开始时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想获取开始时间,但它不应该在开始时间和结束时间之间(通过另一个表的引用获取).我已经试过了,但出现错误.任何人都可以帮助我吗?
I want to fetch the start time but it should not be in between start and end time (fetching with the reference of another table). I ve tried up but am getting error. Can anyone help me on this.?
SELECT DISTINCT right(start_time,7) AS st_time
FROM Session_Info
WHERE CourseName = 'Java'
AND (right(start_time,7) NOT IN BETWEEN
(SELECT right(start_time,7)
FROM Session_Info
WHERE Session_Id IN
(SELECT Session_Id
FROM sessions
WHERE UserId='a')) AND
(SELECT right(end_time,7)
FROM Session_Info
WHERE Session_Id IN
(SELECT Session_Id
FROM sessions
WHERE UserId='a')))
也在重复使用相同的查询,例如(从会话中 UserId='a' 中选择 Session_Id)如何将其存储在变量中?
Also am reusing the same query like (select Session_Id from sessions where UserId='a') how to store it in a variable?
推荐答案
您可以将代码重写为类似
You can rewrite your code to something like
SELECT DISTINCT right(start_time,7) AS st_time
FROM Session_Info
WHERE CourseName = 'Java'
AND Session_ID IN (SELECT Session_ID FROM sessions WHERE UserId = 'a')
AND NOT (right(start_time,7) BETWEEN right(start_time,7) AND right(end_time,7))
或使用 CTE
;WITH mySessionIDs (Session_ID)
(
SELECT Session_ID
FROM sessions
WHERE UserId = 'a'
)
SELECT DISTINCT right(si.start_time,7) AS st_time
FROM Session_Info si
INNER JOIN mySessionIDs
ON si.Session_ID = mySessionIDs.Session_ID
WHERE si.CourseName = 'Java'
AND NOT (right(start_time,7) BETWEEN right(start_time,7) AND right(end_time,7))
这篇关于在开始时间和结束时间之间选择开始时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文