Oracle 如何从多个列中列出一个值

Oracle 如何从多个列中列出一个值,oracle,Oracle,我有一个来自多个连接结果的最终输出表 现在假设我有以下结果 Select Product, Price, OwnerA, OwnerB , OwnerC from MyProduct; 三个所有者字段中只有一列有值,我想要一列所有者字段。所以最终的结果需要如下 选择产品、价格、所有者 使用Oracle数据库使用合并: SELECT Product, Price, COALESCE(OwnerA, OwnerB, OwnerC) AS Owner FROM MyProdu

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

现在假设我有以下结果

Select Product, Price, OwnerA, OwnerB , OwnerC from MyProduct;
三个所有者字段中只有一列有值,我想要一列所有者字段。所以最终的结果需要如下
选择产品、价格、所有者


使用Oracle数据库

使用
合并

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

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

感谢您的回复,当我使用任何演示表的简单select查询时,它会起作用。但是当我应用实际的存储过程代码时,它会返回这个错误-12704。00000-“字符集不匹配”。你能给我一些建议吗?在没有看到你的实际查询/过程之前,我无法发表评论。听起来好像和编码或列类型有关。(不要将代码作为注释放在这里!)只需在非Unicode字符串常量之前添加N''| |。-解决了的