代码之家  ›  专栏  ›  技术社区  ›  WalterJ89

SQL标准中的最大和最小值

  •  5
  • WalterJ89  · 技术社区  · 15 年前

    我的理解是,greatest()和least()不是SQL标准的一部分,但非常常见。

    我想知道, 有没有一种方法可以克隆SQL标准中最大限度保留的功能?

    SELECT id, GREATEST(1,2,3,4,5,6,7) AS number FROM table
    

    完全查询:

      SELECT SUBSTR(section,1,2) AS campus, 
               AVG(GREATEST(maximum - enrolled, 0)) AS empty 
        FROM sectionrun 
       WHERE coursenumber = '105' AND subject = 'ENGL' 
    GROUP BY campus
    
    2 回复  |  直到 12 年前
        1
  •  4
  •   Aillyn    15 年前

    您可以使用 CASE 表达式:

      SELECT SUBSTR(section,1,2) AS campus, 
               AVG(CASE WHEN maximum - enrolled > 0 
                        THEN maximum - enrolled
                        ELSE 0
                   END) AS empty 
        FROM sectionrun 
       WHERE coursenumber = '105' AND subject = 'ENGL' 
    GROUP BY campus
    
        2
  •  2
  •   Never Sleep Again    12 年前
    GREATEST(1,2,3,4,5,6,7) AS number
    

    可以变成

    (select max(tmp) from (
            select 1 tmp from dual
            union all
            select 2 tmp from dual
            union all
            select 3 tmp from dual
            union all
            select 4 tmp from dual
            union all
            select 5 tmp from dual
            union all
            select 6 tmp from dual
            union all
            select 7 tmp from dual
    ) ) AS number