НАИЛУЧШИЙ и НАИМЕНЕЕ в стандарте SQL - PullRequest
5 голосов
/ 25 сентября 2010

Насколько я понимаю, 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 ]

4 голосов
/ 25 сентября 2010

Вы можете использовать выражение 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 голосов
/ 13 декабря 2013
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          
...