Duda sobre SUM cuando no hay registros

19/08/2005 - 15:24 por Alfredo Crisostomo | Informe spam
Si el conjunto no tiene registros

Por que este select no da 0, sino que da NULL?

SELECT SUM(ISNULL(TOTAL,0)) FROM tabla where condicion

Sin embargo este sí da 0:

SELECT ISNULL(SUM(TOTAL),0) FROM tabla where condicion

No deberian dar cero los dos ?
 

Leer las respuestas

#1 Alejandro Mesa
19/08/2005 - 15:39 | Informe spam
Alfredo Crisostomo,

Exactamente por eso mismo, porque al no haber filas que cumplan con la
condicion, la funcion no es evaluada. La unica funcion agregada que tiene
diferente comportamiento es "count".

Ejemplo:

select sum(c1), min(c1), max(c1), avg(c1), count(c1)
from (select 1) as t1(c1)
where c1 > 1


AMB

"Alfredo Crisostomo" wrote:

Si el conjunto no tiene registros

Por que este select no da 0, sino que da NULL?

SELECT SUM(ISNULL(TOTAL,0)) FROM tabla where condicion

Sin embargo este sí da 0:

SELECT ISNULL(SUM(TOTAL),0) FROM tabla where condicion

No deberian dar cero los dos ?



Preguntas similares