¿Por qué aparece este mensaje?

10/09/2004 - 12:42 por Eje | Informe spam
Alguna vez en procedimientos almacenados me aparece este error:

Advertencia: valor NULL eliminado por el agregado u otra operación SET.

No sé muy bien a qué puede deberse (vamos, entiendo que es porque me ha
quitado algún nulo, lo que no entiendo es por qué avisa de esto) ni en qué
repercute.
La última vez que me ha dado he puesto comprobaciones antes de cada
instrucción select, insert y update para ver en cual me ocurre esto, pero me
pone el mensaje antes de hacer nada siquiera, y no sé por qué me ocurre ni
si debo preocuparme por ello.

Un saludo y gracias de antemano

Preguntas similare

Leer las respuestas

#6 Eje
10/09/2004 - 16:14 | Informe spam
Liliana Sorrentino
Aparentemente no hay diferencia de rendimiento y tampoco de resultado, lo
único diferente que veo es la aparición del mensaje.
PERO EN ESTE CASO QUE PUSIMOS DE EJEMPLO.
Veamos este otro:



verificar
si es nulo
select cantidad = count(clave), sumatoria = COALESCE(sum(importe + 10),0)
from #test
Resultado:
cantidad sumatoria
4 90.00

Advertencia. Valor nulo eliminado del agregado.

verificando si es nulo, el resultado es diferente.
select cantidad = count(clave), sumatoria = sum(COALESCE(importe,0) + 10)
from #test
Resultado:
cantidad sumatoria
4 100.00



Sí, en mi caso no habría problema ya que mis sum sólo utilizan valores de
campos, no se les suma, resta,... ningún valor fijo, que es por lo que
ocurre eso en este ejemplo.
No obstante sigo pensando que si tiene que hacer el COALESCE por cada
registro en lugar de para el total, en el caso de ser una select de muchos
registros debería notarse. Así que voy a hacer la prueba:
Una select de muchos registros (devuelve 297.586 filas), con dos sum, que a
su vez dentro contienen la resta de 2 campos.

Con el COALESCE fuera de los SUM: 1 minuto y 1 segundo
Con el COALESCE dentro del SUM (es decir, el COALESCE en el campo en lugar
de en el SUM): 1 minuto y 2 segundos

Con esto se demuestra que una vez más la gran Liliana tiene razón y
prácticamente no afecta nada el ponerlo de una u otra forma. Así que
Liliana, tienes pagado lo que quieras en cualquier sitio ;-)

Un saludo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida