在 Oracle 视图中应用过滤器

2021-09-17 00:00:00 sql select oracle view

我有下面的视图,我只想应用小过滤器,例如,我想忽略或删除视图中每个 IDENTIFIER 的所有行,其中 member_descr = 'O' 和 member_ratio <;= -5.

I have below view where i just wanted to apply small filter such that for example i want to ignore or remove all rows for each IDENTIFIER from the View where member_descr = 'O' and member_ratio < = -5.

我不确定是否要创建新的联合条件或应用过滤器,我正在为 member_descr = 'O' 计算 member_ratio 值的值

I am not sure if i want to create new Union condition or apply filter where i am calculating value for member_ratio value for member_descr = 'O'

目前在 fiddle 中,我们可以看到 member_ratio 值为 15.32778 for member_descr = 'O',计算后对于标识符 I0000RTERER3 是可以的.但是在计算 member_descr = 'O' 如果 member_ratio <= -5 那么我想从视图中忽略或删除此标识符的所有行.

Currently in the fiddle we can see the member_ratio value is 15.32778 for member_descr = 'O' which is ok for Identifier I0000RTERER3 after calculation. But after calculation for member_descr = 'O' if the member_ratio <= -5 then i want to ignore or remove all the rows for this identifier from view.

推荐答案

如果我现在明白我们需要 not exists 这里,

If I understood now we need not exists here,

select * 
  from IS_ID t1
  where not exists ( select 1
                       from IS_ID t2
                      where t1.identifier = t2.identifier
                        and (MEMBER_DESCR = 'O' and member_ratio < -5))

相关文章