SQL:根据条件

时间:2015-06-19 16:43:27

标签: sql oracle

我正在尝试确定最佳方法。在这方面,我们有许多实体和对这些实体成员的主张。这些主张本身并不具有该实体的概念,我将拥有一个将成员资格和权利要求结合在一起的子查询。我的问题是每个实体都有特定的索赔来源。

和claimource in(当实体1然后来源a& b,当实体2然后来源a,当实体3然后来源a,b,c)

and c.PD_PRD_YYYYMM between '201401' and (select to_char(sysdate - 45,   'YYYYMM') from dual) -- analyst adjust 
and c.CLM_SRC_CD in (when c.entity = 'Entity 1' then 'Source A', when c.entity = 'Entity 2' then 'Source A & Source B', etc...) 

我被困在c.CLM_SRC_CD部分,因为我不知道你是否需要一个案例陈述。这在概念上将用于多个地方。我在某些方面取得了很大的进步,但它已经埋没在我成千上万的崩溃的编辑中

我不确定案例陈述是否合适?任何帮助都将非常感激。

谢谢,

贾斯汀

1 个答案:

答案 0 :(得分:0)

虽然我不是Oracle SQL的专家,但是这应该是关闭的:

where...
and ((c.Entity = 'Thing 1' and c.CLM_SRC_CD in (select ... from SourceA))
     or (c.Entity = 'Thing 2' and c.CLM_SRC_CD in (select ... from SourceB)))

使用andor s可以使其类似于case语句,但允许您在in项检查中为我们指定子查询。