我的任务是创建一个查询,比较表中的两列,以查看计划策略的名称是否与计划运行备份的时间相关。目前我已经提出了我知道如何做的唯一方法,那就是备份时间有48个select语句,如下面的查询。我认为可能有更好或更快的方法来做到这一点,但这可能超出了我对SQL查询的了解。
SQL查询:
select
schedulePolicy, scheduleName, schedbackuptype,
schedbackupday, schedbackupTime
from
commserv.dbo.CommCellBKScheduleSummary
where
schedulePolicy like '%00:00%'
and schedbackupTime not like '%00:00%'
or schedulePolicy like '%01:00%'
and schedbackupTime not like '%01:00%'
示例计划政策
正确的日程安排政策:
schedulePolicy: 01_SUN_Full 00:00
schedbackupTime: 00:00
不正确的计划政策:
schedulePolicy: 01_MON_Full 00:00
schedbackTime: 02:00
上面查询的输出应显示下面的输出,因为备份计划在错误的时间运行。
schedulePolicy: 01_MON_Full 00:00
scheduleName: Full
schedbackuptype: Full
schedbackupday: Monday
schedbackupTime: 02:00
答案 0 :(得分:0)
以下是如何返回schedulePolicy中的时间字符串与schedbackupTime中的时间字符串不匹配的行,假设schedulePolicy的格式始终相同:
SELECT schedulePolicy, scheduleName, schedbackuptype, schedbackupday, schedbackupTime
FROM commserv.dbo.CommCellBKScheduleSummary
WHERE RIGHT(schedulePolicy, 5) != schedbackupTime