如何比较SQL表中的记录

如何比较SQL表中的记录,sql,sql-server,Sql,Sql Server,我有一个表名TransactionTable。如果InsuranceCode='ADAP'和IsADAP=1,我必须过滤这些记录并返回剩余的记录 我试图写一些类似于这种语法的东西 select * from TransactionTable where Not Exists (select * from TransactionTable where InsuranceCode = 'ADAP' and IsADAP = 1 ) TransactionTable中的总记录数为1832,过滤条

我有一个表名TransactionTable。如果InsuranceCode='ADAP'和IsADAP=1,我必须过滤这些记录并返回剩余的记录

我试图写一些类似于这种语法的东西

select *  from TransactionTable
where  Not Exists
(select * from TransactionTable where InsuranceCode = 'ADAP' and IsADAP = 1 )
TransactionTable中的总记录数为1832,过滤条件中的总记录数为109。我希望输出1723条记录。下面的语法只返回785条记录。我知道下面的语法不正确

select * from TransactionTable 
where InsuranceCode <> 'ADAP' and IsADAP <> 1
从TransactionTable中选择*
其中保险代码“ADAP”和IsADAP 1

如何比较表记录并获得输出。

这可能是您想要的:

select * from TransactionTable 
where (InsuranceCode <> 'ADAP' or IsADAP <> 1)

。。这是因为DeMorgan定律。

不,先生,要过滤的条件是InsuranceCode=ADAP和IsADAP=1。如果上面提到了两个列值,只需对其进行过滤即可。或者语法将返回记录,即使它们都不匹配。是否返回保险代码为ADAP且IsADAP为的记录1@goofyui照我说的做,在这里查阅德摩根定律:@rbaryyoung您可能应该在第一个或条件中添加括号,为了避免以后出现错误,如果有人后来在where中添加了一个条件,而没有注意到该条件,或者您没有清楚地解释您想要的是什么。如前所述,RBarry提供的答案是正确的。如果这不是你想要的,那么请更新你的问题,清楚地解释什么是你真正想要的
select * from TransactionTable 
where NOT (InsuranceCode = 'ADAP' and IsADAP = 1)