如何列出多个列中的一个值

时间:2018-04-30 07:21:50

标签: oracle

我有一个最终输出表来自多个连接结果。

现在假设我有以下结果

Select Product, Price, OwnerA, OwnerB , OwnerC from MyProduct;

并且只有一列具有三个所有者字段中的值,我想要所有者字段的单列。所以最终结果需要如下 Select product, price, owner

使用Oracle数据库

1 个答案:

答案 0 :(得分:0)

使用COALESCE

SELECT
    Product,
    Price,
    COALESCE(OwnerA, OwnerB, OwnerC) AS Owner
FROM MyProduct

COALESCE技巧应该在这里工作,因为它将评估从左到右的输入(即从所有者A到B到C),并且它将以第一个非NULL值停止。由于您确定只有1个或3个所有者不是NULL,因此应该能够选择非NULL值。