SQLSERVER过滤条件

需要把 员工下机时间>=工单开工时间 的过滤掉,但是这样也会把 下机时间为null 一起过滤掉了,需要怎么去改 

image.png

SQL CCn1234 发布于 2024-5-23 15:37 (编辑于 2024-5-23 15:47)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
胡歌Lv7中级互助
发布于2024-5-23 15:47(编辑于 2024-5-23 16:04)

那就这样,(case when 员工下机时间 is null then '9999-12-31' else 员工下机时间 end ) >= 工单开工时间

  • CCn1234 CCn1234(提问者) 还是会把NULL的过滤掉
    2024-05-23 15:49 
  • 胡歌 胡歌 回复 CCn1234(提问者) 不会啊,你自己试试不就知道了
    2024-05-23 15:50 
  • CCn1234 CCn1234(提问者) 回复 胡歌 试了
    2024-05-23 15:53 
  • CCn1234 CCn1234(提问者) and 员工上机时间<=工单完成时间 and 工单开工时间<(case when 员工下机时间 is null then '9999-12-31' else 员工下机时间 end ) 这样应该是对了
    2024-05-23 15:56 
  • 胡歌 胡歌 回复 CCn1234(提问者) 你现在是因为员工下工时间为null,才有问题吧?
    2024-05-23 15:57 
最佳回答
0
CovidLv3高级互助
发布于2024-5-23 15:38(编辑于 2024-5-23 15:40)

WHERE 员工下机时间<工单开工时间 or 下机时间 is null

-------------

如果还要包含非null的空值

WHERE 员工下机时间<工单开工时间 or 下机时间 is null or 下机时间=''

最佳回答
0
ID1208Lv6高级互助
发布于2024-5-23 15:42(编辑于 2024-5-23 15:43)

单纯的过滤可以

先判断给为null的字段,赋一个值,比如当前时间加1个小时,然后再套一层select 正常过滤

  • 3关注人数
  • 251浏览人数
  • 最后回答于:2024-5-23 16:04
    请选择关闭问题的原因
    确定 取消
    返回顶部