当列值为null时,哪里没有子句没有返回记录?

时间:2015-12-26 14:57:19

标签: ruby-on-rails sql-server where

我有以下疑问。

punch_recs = emp.punch_in_outs.where(date: Date.today-14 .. Date.today-1).where.not('status' => "Travel")

status列值不等于nil时,上述查询正常工作。但是当status列值为nil时,那些记录我没有得到。什么错误的这个查询我没有得到。我的要求是,我希望获取那些记录,date列值应该在所设定的范围内,而status列值不应该是“旅行”。(即使没有{ {1}}我的意思是如果status也为空,我想获取那些记录。)但是这个查询没有给那些status的记录是nill或null。

1 个答案:

答案 0 :(得分:2)

SQL中的

NULL未知,它不等于任何东西。您需要单独处理案例:

punch_recs = emp.punch_in_outs.
  where(date: Date.today-14 .. Date.today-1).
  where("status != 'Travel' OR status IS NULL")