多选题 执行下面的语句会返回什么值?
SELECT AVG(NVL(SALARY,100)) FROM EMPLOYEES;
假设有10个员工记录,除了一条记录的SALARY字段是空值外,每条记录包含的SALARY值为100。
【正确答案】 C
【答案解析】NVL函数将一个NULL值转换为100。之后,AVG函数将SALARY值相加,得到结果1000。用这个值除以记录的数量,返回100。
A、B和D不正确。如果选择AVG(NVL(SALARY,0)),就会返回B中的结果。值得注意的是,如果选择AVG(SALARY),也会返回100,因为AVG函数求非空值的和,用这个和除以包含非空SALARY值的行数。因此可以像这样计算AVG(SALARY):900/9=100。