多选题 执行下面的语句会返回什么值?
SELECT SUM(SALARY) FROM EMPLOYEES;
假设有10个员工记录,除了一条记录的SALARY字段是空值外,每条记录包含的SALARY值为100。
【正确答案】 A
【答案解析】SUM聚合函数忽略空值,将非空值相加。因为有9行包含的SALARY值是100,所以返回900。
B、C和D不正确。如果执行SUM(NVL(SALARY,100)),就会返回B中的结果。C是具有迷惑性的选择,因为包含NULL值的规则运算返回NULL结果。然而,聚合函数(除COUNT(*)以外)都忽略NULL值。D不正确是因为A正确。