暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何有条件地从三个表中选择数据?

askTom 2018-03-27
373

问题描述

你好!

首先,对不起,如果您已经回答了类似的问题,但我找不到它。
我需要创建一个应该包含来自3个不同表的数据的报告,我的问题是我不知道如何为一列选择数据。

表格: 文章,价格1,价格2

在一列中,我需要从表Price1/Price2中选择商品价格,但我需要首先检查表Price1中是否有价格的值,如果是,则取该值/如果没有从表Price2中取值。我需要对表格文章的每个部分都这样做。你能给我一个想法吗?我该怎么做?


提前谢谢。

问候

专家解答

听起来你想做的是:

-外部加入价格表到文章
-使用coalesce查找返回第一个非null

create table t1 (
  x int, y int
);
create table t2 (
  x int, y int
);
create table t3 (
  x int, y int
);

insert into t1 values (1, 1);
insert into t1 values (2, 1);
insert into t1 values (3, 1);

insert into t2 values (1, 2);
insert into t2 values (2, 2);

insert into t3 values (1, 3);

select t1.x, coalesce(t3.y, t2.y, t1.y) 
from   t1
left   join t2
on     t1.x = t2.x
left   join t3
on     t1.x = t3.x;

X   COALESCE(T3.Y,T2.Y,T1.Y)   
  1                          3 
  2                          2 
  3                          1 


如果这没有帮助,请给出你试图做的具体例子。这些应包括:

-创建表格
-插入表格
-您的查询的预期输出
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论