SQL查询比较2列中的所有行

时间:2015-10-23 11:58:27

标签: sql database

我的任务是创建一个查询,比较表中的两列,以查看计划策略的名称是否与计划运行备份的时间相关。目前我已经提出了我知道如何做的唯一方法,那就是备份时间有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

1 个答案:

答案 0 :(得分:0)

以下是如何返回schedulePolicy中的时间字符串与schedbackupTime中的时间字符串不匹配的行,假设schedulePolicy的格式始终相同:

SELECT schedulePolicy, scheduleName, schedbackuptype, schedbackupday, schedbackupTime
FROM commserv.dbo.CommCellBKScheduleSummary
WHERE RIGHT(schedulePolicy, 5) != schedbackupTime