La función isnull es una de las que más suelo utilizar a menudo. ¿Para que sirve? Para reemplazar los valores nulos por uno que nosotros digamos. Por ejemplo, vamos a imaginar que tenemos una tabla que se llama facturas y un campo que se llama valor. Y queremos una sencilla consulta que nos diga la suma de estas facturas. Aquí haríamos algo así:
select sum(valor) from facturas
Pero claro ¿y que ocurre si ese campo valor tiene nulos? Pues que tendremos problemas... pero para evitarlos tenemos el isnull. Lo que vamos a hacer es decirle que si el campo valor es nulo, lo reemplazaremos por un cero ¿como? así de facil
isnull(valor,0)
Es decir, le ponemos el nombre del campo y el valor por el que se van a reemplazar los nulos. Con esto, nuestra consulta quedaría:
select sum(isnull(valor,0)) from facturas
Lo bueno del isnull es que se puede emplear casi en cualquier sitio, como por ejemplo en la parte where de la consulta. Por ejemplo, ahora vamos a sacar las facturas que no tengan valor o sea cero:
select * where isnull(valor,0)=0
Así de sencillo. Con isnull podrás evitar el problemático uso de los nulos que tantos dolores de cabeza suelen producir.
select sum(valor) from facturas
Pero claro ¿y que ocurre si ese campo valor tiene nulos? Pues que tendremos problemas... pero para evitarlos tenemos el isnull. Lo que vamos a hacer es decirle que si el campo valor es nulo, lo reemplazaremos por un cero ¿como? así de facil
isnull(valor,0)
Es decir, le ponemos el nombre del campo y el valor por el que se van a reemplazar los nulos. Con esto, nuestra consulta quedaría:
select sum(isnull(valor,0)) from facturas
Lo bueno del isnull es que se puede emplear casi en cualquier sitio, como por ejemplo en la parte where de la consulta. Por ejemplo, ahora vamos a sacar las facturas que no tengan valor o sea cero:
select * where isnull(valor,0)=0
Así de sencillo. Con isnull podrás evitar el problemático uso de los nulos que tantos dolores de cabeza suelen producir.
8 comentarios:
Gracias por la explicación
Un saludo
me sirvio de mucho gracis y saludos adalberto montanía
Muchas gracias por la entrada, solo tengo una observación respecto al ejemplo que brindas, la función isnull no aplica si la utilizas como tu lo mencionas:
select sum(isnull(valor,0)) from facturas
para que se efectue la sutitución tienes que realizarlo de la siguiente forma:
select isnull(sum(valor,0)) from facturas
Muchas gracias.
Saludos.
Muy útil la función. Es de gran utilidad. Saludos
Muchas gracias, me ha sido muy útil.
muy buena la explicacion, gracias !!
Y ESTA SENTENCIA COMO LA INTERPRETAS:
isnull(max(nGraAcademico),0)+1 from GradoAcademico
GRACIAS
Muchas gracias mas claro no lo pudiste haber explicado!
Publicar un comentario