Oracle 数据库中 GREATEST() 函数的作用?

1:GREATEST() 函数用于在给定一组值中返回最大的值。它可以接受两个或多个参数,并在这些参数中找到最大值。

例如,假设你有一个包含三个数值的列,分别是 10、25 和 5,那么使用 GREATEST() 函数将返回最大值 25

此外,GREATEST() 函数还支持比较日期和时间类型的值,可以方便地找出这些值中的最大值。它也可以与其他 SQL 函数和表达式结合使用,以更复杂的方式查找最大值。

总之,GREATEST() 函数非常有用,因为它可以让你很容易地在一组值中找到最大值,而不需要进行繁琐的比较操作。

例子:

SELECT 
 GREATEST(
  NVL(a.模件电裝单人工作耗时,0),
  NVL(a.整机电裝单人工作耗时,0),
  NVL(a.单机调试单人工作耗时,0),
  NVL(a.单板调试单人工作耗时,0),
  NVL(a.测发控系统联调单人工作耗时,0) ,
  NVL(a.控制系统联调单人工作耗时,0)
  ) AS  最长工序耗时,

 NVL(a.模件电裝单人工作耗时,0) AS 模件电裝单人工作耗时,
 NVL(a.整机电裝单人工作耗时,0) AS 整机电裝单人工作耗时,
 NVL(a.单机调试单人工作耗时,0) AS 单机调试单人工作耗时,
 NVL(a.单板调试单人工作耗时,0) AS 单板调试单人工作耗时,
 NVL(a.测发控系统联调单人工作耗时,0) AS 测发控系统联调单人工作耗时,
 NVL(a.控制系统联调单人工作耗时,0) AS 控制系统联调单人工作耗时,
 NVL(a.数据日期,SYSDATE)   AS 数据日期
  FROM (SELECT ROW_NUMBER() OVER(PARTITION BY ORG_NO,TO_CHAR(DATA_DATE, 'YYYY') 
ORDER BY DATA_DATE DESC, CREATE_TIME DESC) rn,
 DECODE(MODEL_ELEC_INSTAL_NUM ,0,0,ROUND(NVL(MODEL_ELEC_INSTAL_TIME,0) / MODEL_ELEC_INSTAL_NUM ) * 100,2 ) AS 模件电裝单人工作耗时,
 DECODE(ELEC_INSTAL_NUM ,0,0,ROUND(NVL(ELEC_INSTAL_TIME,0) /  ELEC_INSTAL_NUM ) * 100,2 ) AS 整机电裝单人工作耗时,
 DECODE(SINGLE_TEST_NUM ,0,0,ROUND(NVL(SINGLE_TEST_TIME,0) / SINGLE_TEST_NUM ) * 100,2 ) AS  单机调试单人工作耗时,
 DECODE(BOARD_TEST_NUM ,0,0,ROUND(NVL( BOARD_TEST_TIME,0) / BOARD_TEST_NUM ) * 100,2 ) AS 单板调试单人工作耗时,
 DECODE(TEST_CONTROL_SYS_NUM ,0,0,ROUND(NVL(TEST_CONTROL_SYS_TIME,0) / TEST_CONTROL_SYS_NUM ) * 100,2 ) AS 测发控系统联调单人工作耗时,
 DECODE(CONTROL_SYS_NUM ,0,0,ROUND(NVL(CONTROL_SYS_TIME,0) / CONTROL_SYS_NUM ) * 100,2 ) AS 控制系统联调单人工作耗时,
          DATA_DATE AS 数据日期
          FROM BRAIN.DS_PROD_PROC_RECORD
         ) a
 where a.rn = 1
 

结果:

猜你喜欢

转载自blog.csdn.net/XikYu/article/details/129670737