如何在SQL语句中组合特定列值
在我们的数据库中有两个变量称为OB和B2B_OB。有EP代码,每个EP可能有以下4种组合之一:如何在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
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