我有一个表名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
如何比较表记录并获取输出。
答案 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)
..这是因为德摩根的法律。