Anuncios

martes, 17 de enero de 2012

Sustituir valor null por otro [SQL Server]


En ocasiones trabajamos con campos null en nuestras tablas, pero al momento de retornar el resultado de una suma, una selección de datos, conteo o cualquiera sea nuestro caso necesitamos sustituir el valor null por cero u otro valor más significativo. En este artículo veremos algunos ejemplos con los que podemos realizar esta acción.



1. Utilizando función isNull

Sintaxis:  isNull(<campo o dato>, <valor a retornar>)
a)
Declare @tabla table (valor int)

insert @tabla values(20)
insert @tabla values(230)
insert @tabla values(null)

Select isNull(valor, 0)Valor
From @tabla


Explicación: En este ejemplo insertamos 3 valores en una tabla, entre los cuales hay uno null, este valor no queremos retornarlo NULL, sino con algún valor, en este caso  CERO.
b)
Declare @tabla table (valor char(10))

insert @tabla values('valor1')
insert @tabla values('valor2')
insert @tabla values(null)

Select isNull(valor, 'otro valor')Valor
From @tabla

Explicación: En este ejemplo insertamos 3 valores en una tabla, entre los cuales hay uno null,  queremos retornar un valor especifico cuando el campo este null, en este ejemplo vemos que retornamos la cadena 'otro valor', así identificaremos que donde diga esto es porque el campo estaba nulo.

c)

Declare @tabla table (valor int)

insert @tabla values(null)

Select isNull(sum(valor), 0)Valor
From @tabla

Explicación: En este ejemplo insertamos 1 solo valor, pueden ser varios, y este valor insertado es null, e intentamos realizar una suma para obtener algun resultado, pero si lo hacemos sin validar si existe null, entonces nos retornara NULL como la suma, entonces agregamos que en caso de que la suma de NULL nos retorne CERO.



 
2. Utilizando función CASE de Consulta

a)

Declare @tabla table (valor int)
insert @tabla values(20)
insert @tabla values(230)
insert @tabla values(null)

Select
Case When valor is null
Then 0
Else Valor End As Valor
From @tabla



Explicación: En este ejemplo insertamos 3 valores en una tabla, entre los cuales hay uno null, este valor no queremos retornarlo NULL, sino con algún valor, en este caso  CERO, utiliamos un CASE para comparar el valor y en caso de haber nulo entonces retorna CERO, en caso contrario retorna el valor correspondiente.

 Por Willy Taveras

People who read this post also read :