如何筛选具有不同条件的表中的记录

问题描述

如何在表中查找仅以“返回”为原因的记录?

我有很多记录的表

This is Table Data

根据表中的数据,它仅返回策略号为5555的记录,因为只有该策略号才具有'Return' ;其他所有政策编号都同时包含'Return''Success',而我不需要。

请帮助我。

解决方法

SELECT *
FROM YOURTABLE
WHERE REASON = 'RETURN'
AND POLICYNUMBER NOT IN (
    SELECT POLICYNUMBER
    FROM YOURTABLE
    WHERE REASON = 'SUCCESS'
)
,

我会使用not exists

select t.*
from mytable t
where not exists (
    select 1 
    from mytable t1 
    where t1.policynumber = t.policynumber and t1.reason <> 'Return'
)

此查询将利用(policynumber,reason)上的索引。