lunes, 30 de julio de 2012

Terror: División entre Cero SQL Server

Este es uno de los problemas mas comunes, ¿que hacer cuando tenemos que hacer divisiones en nuestros registros y tenemos columnas donde el divisor es igual a 0 ? pues es muy fácil SQL nos regala una función para esta situación.. NULLIF( expression , expression ) es muy sencillo usarla y nos salvara la vida en estos casos


Veamos un ejemplo:
Declararemos 2 variables la primera con un valor de 2 y otra con valor 0
declare @num1 int = 2
declare @num2 int  = 0

Si hacemos la siguiente consulta solo lograremos generar un error y estrés en nuestras mentesillas
Select @num1/@num2 as Disivion


Msg 8134, Level 16, State 1, Line 18
Divide by zero error encountered.


Ok, para solucionar esto basta con usar nuestra función NULLIF:

Select @num1/NULLIF(@num2,0) as Disivion

  y listo nos devolverá un resultado NULL



6 comentarios: