【问题标题】:Apply filter in Oracle View在 Oracle 视图中应用过滤器
【发布时间】:2020-12-15 07:46:30
【问题描述】:

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

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

目前在小提琴中,我们可以看到 member_ratio 值为 15.32778 for member_descr = 'O' 计算后标识符 I0000RTERER3 可以。但是在计算 member_descr = 'O' 之后,如果 member_ratio

【问题讨论】:

  • 你的意思是说不仅member_descr = 'O' the value of MEMBER_RATIO < -5 的记录,还有LU0068337053的所有记录都应该删除?
  • 是的,如果不满足条件,则应删除 LU0068337053 的所有记录..

标签: sql oracle select view


【解决方案1】:

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

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))

【讨论】:

  • 是的,我认为这很好......但是我如何在 View 中应用相同的规则?我想我们在计算之后需要这个吗?
  • 是的,你是对的,但是修改现有的会太多,我建议使用此查询创建另一个视图,而不是修改已经很复杂的视图。
  • 哦,不可能在现有视图中应用相同的吗?我想我们可能需要应用额外的联合或过滤器吗?
  • 是的,Symonds 应该是可能的,但我认为让基本视图保持原样,如果您真的需要另一个过滤的视图,为什么不创建一个呢?查询应该没问题,但如果它是在许多地方使用的东西,请创建另一个。创建视图不会有任何伤害。
  • 我们需要删除与MEMBER_DESCR = 'O' and member_ratio &lt; -5匹配的所有标识符,这是现有视图中难以实现的部分。如果成功,我会尝试并更新您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多