我的理解是GREATEST()和LEAST()不是SQL标准的一部分,但是很常见.
我想知道,有没有办法克隆GREATEST的功能保持在SQL标准内?
SELECT id, GREATEST(1,2,3,4,5,6,7) AS number FROM table
Run Code Online (Sandbox Code Playgroud)
完全查询:
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
Run Code Online (Sandbox Code Playgroud)
小智 5
GREATEST(1,2,3,4,5,6,7) AS number
Run Code Online (Sandbox Code Playgroud)
可以变成
(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
Run Code Online (Sandbox Code Playgroud)
您可以使用以下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
Run Code Online (Sandbox Code Playgroud)