【问题标题】:Oracle view to return single column from multiple select columnsOracle 视图从多个选择列返回单列
【发布时间】:2016-07-21 22:28:16
【问题描述】:

查询 1:我需要从一张表中获取部门代码。 查询2:使用该部门代码查询另一个也有另一组部门代码的表。一对多,一部门指多部门。

注意:它们在两个表中的列名不同。

最终结果应该是第一次查询和第二次查询的并集。

例如:查询 1 结果:ECE 查询 2 结果:EEE、Mech、Comp。科学。

我需要结果是 ECE、EEE、Mech、Comp。科学。

declare default_dept_Code varchar2(10);
begin
select dept_code into default_dept_Code from (select dept_code from 
course_per WHERE student_no ='526765771');

dbms_output.put_line(default_dept_Code);

SELECT dept_code FROM course_per WHERE student_no ='526765771'
union all
select add_dept_code from addition_dept where dept_Code = default_dept_Code;

我无法执行这个查询,它有错误。我可以处理它的其他最佳方法是什么,我需要把它放在一个视图中。我试图创建临时表并将选择结果插入其中,但没有用。我是甲骨文的新手。我不想使用光标,如果这是我可以选择的唯一选择。

【问题讨论】:

  • 请发布表结构(表和列名、列的数据类型、主键和外键指定)和示例数据,并从示例数据中获得所需的结果。

标签: oracle


【解决方案1】:

据我了解,您可以这样编写查询:

SELECT dept_code as code 
    FROM course_per 
    WHERE student_no ='526765771'
UNION ALL
SELECT add_dept_code as code 
    FROM addition_dept 
    WHERE dept_Code = (
        SELECT dept_code
        FROM course_per 
        WHERE student_no ='526765771');

【讨论】:

  • 但是,在一个视图中我不想使用 where 子句,在 .net c# 表适配器中我可以处理这个 where 子句,我的问题是我的 addition_dept 表中只有 5 行,但是 course_per 表很大,知道吗?
猜你喜欢
  • 2018-09-01
  • 1970-01-01
  • 2014-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-19
相关资源
最近更新 更多