SQL Server:WHERE子句用于排除选择中的数据

时间:2016-12-06 15:12:12

标签: sql-server where-clause

我有一张人员表,inactive-flag(位)表示有效/无效,fromdatetodate

  • a)无效= 1表示某人一般“不活跃”。 如果fromdate和todate字段中存在日期,则表示在此日期期间,他通常不处于活动状态EXCEPT

  • b)无效= 0表示某人一般为“有效”。 如果fromdatetodate字段中有日期,则表示在此日期期间,他通常处于有效状态EXCEPT

  • c)最后一个选项是只有Inactive = 0且没有任何日期例外的人(fromdate和todate字段为NULL)。

我想过滤所有人a)和c),但b)除外。

我尝试了很多,但无法解决问题。

我找到了a)和c)的解决方案,但没有找到b)的解决方案。 我试过b):

WHERE inaktiv=0 AND (Not (fromdate >=convert(date,getdate()) AND todate <=convert(date,getdate())))

2 个答案:

答案 0 :(得分:0)

获得a)和c)案例:

use GuzzleHttp\Cookie\CookieJar;

$cookieJar = CookieJar::fromArray([
    'cookie_name' => 'cookie_value'
], 'example.com');

$client->request('GET', '/get', ['cookies' => $cookieJar]);

答案 1 :(得分:0)

我想我经过多次试验后才这样做了:

WHERE ((inaktiv=0  and (not (convert(date,getdate()) between aktivVon AND  aktivBis))))
or ((inaktiv=0) and (aktivVon is null AND  aktivBis is null))
or ((inaktiv=1 and  (convert(date,getdate()) between aktivVon AND  aktivBis)))

最后一行是b)。 请确认我的解决方案,我希望我没有忘记任何事情。 迈克尔