如何在SQL语句中组合特定列值

如何在SQL语句中组合特定列值,sql,oracle,Sql,Oracle,在我们的数据库中有两个变量称为OB和B2B_OB。有EP代码,每个EP可能有以下4种组合之一: EP OB B2B_OB --- -- ------ 3 X 7 X 11 14 X X 我想做的是合并抓取列表中的X,这样就可以为单个EP设置A或B值。我的条件是: IF (OB IS NULL AND B2B_OB IS NULL) THEN TYPE = A IF (OB IS NOT NULL OR B2B_OB IS NOT NULL) THE

在我们的数据库中有两个变量称为OB和B2B_OB。有EP代码,每个EP可能有以下4种组合之一:

 EP  OB B2B_OB
---  -- ------
 3   X
 7        X
11  
14   X    X
我想做的是合并抓取列表中的X,这样就可以为单个EP设置A或B值。我的条件是:

IF (OB IS NULL AND B2B_OB IS NULL) THEN TYPE = A  
IF (OB IS NOT NULL OR B2B_OB IS NOT NULL) THEN TYPE = B
我要获取的列表如下所示:

 EP  TYPE
---  ----
 3   B
 7   B
11   A
14   B
如何在查询中执行此操作? TIA.

编辑:已更正并更改为或 这里有一个在postgres上测试过的解决方案语法,但从我看来应该是相同的

select ep, 
  case
    when ob is null and b2b_ob is null then a
    when ob is not null or b2b_ob is not null then b
    else null
  end as type
from table;
注意:else null是多余的,但只想强调默认的else大小写。

编辑:已更正并改为或 这里有一个在postgres上测试过的解决方案语法,但从我看来应该是相同的

select ep, 
  case
    when ob is null and b2b_ob is null then a
    when ob is not null or b2b_ob is not null then b
    else null
  end as type
from table;

注意:else null是多余的,但只想强调默认的else大小写。

看起来第二行的大小写应该是ob不为null或b2b_ob不为null,那么第二行的大小写应该是ob不为null或b2b_ob不为null,然后是b