如何比较SQL表中的记录

时间:2014-03-14 18:35:56

标签: 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,过滤标准的总记录是109.我预计1723记录作为输出。下面的语法只返回785条记录。我知道以下语法不正确。

select * from TransactionTable 
where InsuranceCode <> 'ADAP' and IsADAP <> 1

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

1 个答案:

答案 0 :(得分:3)

这可能是你想要的:

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

查询DeMorgan's laws,如果您想了解原因。

请注意,上述内容与此版本含义相同:(忽略NULL)

select * from TransactionTable 
where NOT (InsuranceCode = 'ADAP' and IsADAP = 1)

..这是因为德摩根的法律。