Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 聚合函数(MAX等)返回NULL而不是无行_Sql_Oracle_Group By_Aggregate Functions - Fatal编程技术网

Sql 聚合函数(MAX等)返回NULL而不是无行

Sql 聚合函数(MAX等)返回NULL而不是无行,sql,oracle,group-by,aggregate-functions,Sql,Oracle,Group By,Aggregate Functions,如何生成聚合函数?例如,当没有行与给定条件匹配时,MAX返回no rows而不是NULL 例如,以下查询返回一行: SELECT MAX(salary) FROM hr.employees WHERE department_id = '11111' 使用“分组依据”无助于: SELECT MAX(salary) FROM hr.employees WHERE department_id = '11111' GROUP BY () 如何使其返回未选择的行0行,未找到数据 我正在使用Oracle

如何生成聚合函数?例如,当没有行与给定条件匹配时,MAX返回no rows而不是NULL

例如,以下查询返回一行:

SELECT MAX(salary)
FROM hr.employees
WHERE department_id = '11111'
使用“分组依据”无助于:

SELECT MAX(salary)
FROM hr.employees
WHERE department_id = '11111'
GROUP BY ()
如何使其返回未选择的行0行,未找到数据

我正在使用Oracle数据库12c。

使用减号:

选择MAXsalary 来自人力资源部员工 其中部门id='11111' 减 从对偶中选择空; DBFIDLE

选择NVLMAXsalary,0 来自人力资源部员工 其中部门id='11111'

这将返回0值,然后您可以执行进一步的操作,希望有帮助。

使用having子句:


请注意,部门id看起来像一个数字。如果是这样的话,比较应该是一个数字,即在11111左右去掉单引号。

问题是如何让它返回0行?这将返回一个包含0的行,而不是返回0行。
SELECT MAX(salary)
FROM hr.employees
WHERE department_id = '11111'
HAVING COUNT(*) > 0;