【问题标题】:Query to Find max of three columns in a row查询以查找最多一行中的三列
【发布时间】:2013-11-12 03:15:03
【问题描述】:

我在表中有三个日期,对于每条记录,我需要找出最多三列,如果该列为空,则需要忽略以防万一,您能帮忙吗?

我使用的是 oracle 10g 版本。

Table-1
---------
SL NO date1 date2 date3 age

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    由于GREATEST 将返回NULL,如果您传递的任何值是NULL,您需要GREATESTCOALESCE 的组合:

    SELECT GREATEST(
        COALESCE(date1, date2, date3)
    ,   COALESCE(date2, date1, date3)
    ,   COALESCE(date3, date1, date2)
    )
    FROM my_test_table
    

    【讨论】:

      【解决方案2】:

      您可以使用GREATEST 函数,它返回给定n 个参数中的最大值:

      SELECT GREATEST(date1, date2, date3)
      FROM   table1
      

      【讨论】:

        【解决方案3】:

        如果我对您的理解正确(您的帖子不是很清楚),您可以使用GREATEST 函数:

        sslect
        ...,
        GREATEST (date1,date2,date3)
        from...
        

        【讨论】:

          猜你喜欢
          • 2011-09-18
          • 1970-01-01
          • 1970-01-01
          • 2011-06-05
          • 1970-01-01
          • 2016-05-21
          • 1970-01-01
          • 2020-09-17
          • 1970-01-01
          相关资源
          最近更新 更多