La función SQL IIF es la función lógica que devuelve una de dos partes, según la evaluación de una expresión. Evalúa la primera demostración y retorna la segunda demostración si la primera demostración es verdadera; de lo contrario, retorna la tercera.
Podemos decir que la función SQL IIF es una función lógica integrada a partir de SQL Server 2012. Se considera la función IIF como la forma abreviada de escribir declaraciones IF Else y también proporciona una manera fácil de escribir una declaración SQL CASE .
Sintaxis de la función SQL iif
IIF (Expresión booleana, Valor_Verdadero, Valor_Falso)
- expresión_booleana: Es una expresión a evaluar.
- Valor_Verdadero: Es el valor que se devolverá si la expresión booleana se evalúa como verdadera.
- valor_falso: Es el valor que se devolverá si la expresión booleana se evalúa como falsa.
Podemos utilizar la sintaxis de esta función que tiene expresión booleana, valor verdadero y valor falso como su parámetro en el que se puede evaluar el primer parámetro para obtener el resultado; si la expresión se vuelve verdadera, dará un valor que está en el segundo parámetro, y si la expresión es falsa, dará falso como el tercer parámetro, la declaración T-SQL IIF es la nueva ruta para escribir la declaración CASE que se ha conectado a las condiciones dadas, como decimos, la función IIF () proporciona una forma rápida de escribir una nueva instrucción CASE mediante el uso de la lógica IF…ELSE porque T-SQL puede transformar internamente la instrucción en la instrucción CASE, que se implementa.
Veamos un ejemplo usando la función SQL IIF para comparar valores enteros.
Ejemplo de la función SQL iif:
La siguiente declaración utiliza la función SQL IIF que evalúa la expresión Cantidad > 100 de la tabla cliente. si la expresión es VERDADERA el resultado es Aprobado si es falso No aprobado. Los resultados se muestran en el alias Evaluación
SELECT id, Nombre, Sexo, Pais, cantidad,
iif(cantidad>100,'Aprobado','No aprobado') as Evaluación
FROM Cliente;
Función SQL IIF anidada
La siguiente declaración usa la función SQL IIF de forma anidada para evaluar las condiciones y devuelve una salida.
Si la cantidad de entrada es <= 200, devuelve ‘No califica’ , si el código está entre 201 y 500, devuelve ‘Básico’ y si Cantidad es mayor que 500, devuelve ‘Superior’.
SELECT id, Nombre, País, Sexo, cantidad,
iif(cantidad<=200,'No califica',
iif(cantidad>200 And cantidad<=500 ,'Básico','Superior')) as Evaluación
FROM Cliente
Como podemos ver, devuelve una Evaluación, por lo que el primer argumento verifica la condición cantidad <= 200 que es No califica, después cantidad>200 And cantidad<=500, donde si esta dentro del rango 200 a 500 es Básico y por encima es mayor.
Las diferencias entre la función if vs iif
La siguiente tabla describe las principales diferencias entre la IF declaración y la función IIF().
IF | IIF() | |
---|---|---|
Tipos | Declaración de control de flujo. | Función lógica. |
¿Cómo se determina el resultado? | Usted especifica una sentencia SQL o un bloque de sentencias para ejecutar. | Usted especifica el valor real a devolver en esta función. |
¿Anidamiento? | El límite del número de niveles anidados depende de la memoria disponible. | Solo se puede anidar hasta el nivel máximo de 10. |
¿Qué pasa si la expresión devuelve falso? | La palabra clave ELSE es opcional (es decir, puede elegir si atender o no los resultados falsos). | Requiere tanto un valor verdadero como uno falso (es decir, debe tener en cuenta los resultados falsos). |
La función SQL iif es en realidad una forma abreviada de escribir una expresión CASE. Por lo tanto, comparte las mismas limitaciones que la expresión CASE , que son diferentes al enunciado IF.
Conclusión
- Esta función es compatible con la mayoría de las versiones de SQL, incluyendo SQL Server, MySQL, Oracle y PostgreSQL.
- La función IIF es útil para realizar evaluaciones condicionales simples en una consulta SQL. Si quiere hacer algo más complejas o utilizar múltiples condiciones, es posible que deba considerar otras funciones, como CASE.
- El resultado de esta función puede ser de cualquier tipo de datos válido en SQL, como cadenas, números, fechas y valores booleanos.
- Todos los parámetros en la función IIF se evalúan en orden. Esto significa que si uno de los valores de retorno de la función es una expresión compleja o una consulta, se evaluará a un con una condición falsa.