>declare @t table (id int identity, col1 Int, col2 Int) > >insert into @t (col1, col2) values (1, 3), (2, 5) > >select * from @t where not (col1 > 3 and col2 < 6) > >select * from @t T where not exists (select * from @t T1 where col1 > 3 and col2 < 6 and T.id = T1.id) > >select * from @t where col1 <=3 or col2 >=6>
DECLARE @ModDate DateTime DECLARE @NoStatus Int DECLARE @ModDate2 DateTime DECLARE @NoStatus2 Int DECLARE @ModDate3 DateTime DECLARE @NoStatus3 Int SET @ModDate='2013-11-09 10:31:18' SET @NoStatus=5 SET @ModDate2='2014-11-03 10:31:18' SET @NoStatus2=8 SET @ModDate3='2014-11-03 10:31:18' SET @NoStatus3=7 SELECT Client.Numero FROM Client (NOLOCK) WHERE NOT (Client.ModDate<@ModDate AND Client.NoStatus=@NoStatus) AND NOT (Client.ModDate<@ModDate2 AND Client.NoStatus=@NoStatus2) AND NOT (Client.ModDate<@ModDate3 AND Client.NoStatus=@NoStatus3)...it seems more easy to understand that the second one:
DECLARE @ModDate DateTime DECLARE @NoStatus Int DECLARE @ModDate2 DateTime DECLARE @NoStatus2 Int DECLARE @ModDate3 DateTime DECLARE @NoStatus3 Int SET @ModDate='2013-11-09 10:31:18' SET @NoStatus=5 SET @ModDate2='2014-11-03 10:31:18' SET @NoStatus2=8 SET @ModDate3='2014-11-03 10:31:18' SET @NoStatus3=7 SELECT Client.Numero FROM Client (NOLOCK) WHERE (Client.ModDate>=@ModDate OR Client.NoStatus<>@NoStatus) AND (Client.ModDate>=@ModDate2 OR Client.NoStatus<>@NoStatus2) AND (Client.ModDate>=@ModDate3 OR Client.NoStatus<>@NoStatus3)