根据Oracle PL / SQL中的其他列最大值选择字段

安德森

我正在计算视图中一个名为“学位等级”的字段。这是“学位”表中的一个字段,该表显示每个教师的学位。一名教师可以拥有一个以上的学位。

字段“学位”也位于表“ C​​rosswalk_Table”中。我想根据Crosswalk_table中“ Degree_Hierarchy”列中的最大值为教职员工选择学位级别。

下面的代码显示学位级别(具有较高的层次结构值)的“硕士”而不是“医生”。非常感谢您的任何帮助。

CAST (                                                                        
       (SELECT DEGREE_LEVEL
          FROM Degrees D, Crosswalk_Table E
         WHERE     
                E.DEGREE_HIERARCHY =
                (SELECT MAX (DEGREE_HIERARCHY)
                    FROM Crosswalk_Table 
                    WHERE DEGREE_CODE = D.FACULTY_DEGREE_CODE)
               AND D.FACULTY_DEGREE_CODE = E.DEGREE_CODE
               AND D.PERSON_SKEY = SRC.PERSON_SKEY
               AND ROWNUM <=1
               ORDER BY DEGREE_HIERARCHY DESC)                 
   AS VARCHAR2 (50))

样本数据:

学位表:

Person_skey  Degree_Code 
-------------------------
123456      MA           

123456      JD

Crosswalk_Table:

degree_level  degree_code  degree_hierarchy
---------------------------------------------
master        MA           30

doctor        JD           40
鳄鱼

如果使用的是Oracle 12或更高版本,则可以使用类似的子查询(ORDER BY和LIMIT为1行):

SELECT c.DEGREE_LEVEL
FROM Degrees d
JOIN CROSSWALK_TABLE c
ON c.Degree_Code = d.Degree_Code
WHERE d.Person_skey = 123456
ORDER BY c.DEGREE_HIERARCHY DESC
FETCH FIRST  ROW ONLY

请看一下这个简单的演示:https : //dbfiddle.uk/?rdbms=oracle_18&fiddle=c8d41924c593f4f361de59a611a363cc

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

UPDATE列,其中不包含PL / SQL的oracle中每一行的最大值

来自分类Dev

根据其他列的最大值选择列中的值

来自分类Dev

PL/SQL - 如何根据表字段值运行不同的选择

来自分类Dev

Oracle PL/SQL:如何根据同一记录的 ID 字段返回字符串值?

来自分类Dev

PL / SQL Oracle交互

来自分类Dev

Oracle 不是 pl/sql

来自分类Dev

根据列 SQL Server 中的最大值选择行

来自分类Dev

Oracle PL / SQL将字符串转换为INTEGER(最大值2147483648)

来自分类Dev

收到错误在PL / SQL的Oracle

来自分类Dev

Oracle PL / SQL条件声明?

来自分类Dev

Oracle PL / SQL代码约定

来自分类Dev

Oracle触发PL / SQL错误

来自分类Dev

Oracle PL / SQL算术错误

来自分类Dev

收到oracle PL / SQL错误

来自分类Dev

Oracle PL / SQL:函数游标

来自分类Dev

根据其他数据框中具有最小值/最大值的列从pandas数据框中选择值

来自分类Dev

根据Google表格中其他列的最大值返回单元格内容

来自分类Dev

根据其他列在python pandas数据框中创建子列表的最大值

来自分类Dev

在PL / SQL函数[Oracle PL / SQL]的末尾消除逗号

来自分类Dev

Oracle SQL 用于比较列值并选择最大值在列 1 中的行

来自分类Dev

Oracle PL / SQL映射,值是数组

来自分类Dev

Oracle PL / SQL:搜索记录类型值

来自分类Dev

行成列Oracle pl sql

来自分类Dev

拆分多行CLOB列-Oracle PL / SQL

来自分类Dev

遍历Oracle PL / SQL中的表

来自分类Dev

列名在PL / SQL ORACLE中作为变量

来自分类Dev

“ For循环” Oracle PL / SQL中的迭代计数

来自分类Dev

在Oracle PL / SQL中打印精美

来自分类Dev

在Oracle PL / SQL中声明动态数组