查询以获取表中的更新记录(如果存在更新),否则获取新记录

时间:2019-07-18 11:55:14

标签: sql

我正在尝试根据事务ID和更新类型从表中获取记录。如果我的交易ID的更新类型为'U',则获取记录,否则,如果交易的更新类型为'N',则不存在'U'

例如:

Transaction_ID    Update_Type
1234                N
1234                U
5678                N
8756                N

预期产量

Transaction_ID    Update_Type
1234                U
5678                N
8756                N

1 个答案:

答案 0 :(得分:0)

这是使用not exists的一种方法:

select t.*
from t
where t.update_type = 'U' or
      not exists (select 1
                  from t t2
                  where t2.Transaction_ID = t.Transaction_ID and
                        t2.update_type = 'U'
                 );

或者,您可以使用聚合:

select Transaction_ID, max(update_type)
from t
group by Transaction_ID;