En SQLite, iif()
es una función condicional que devuelve el segundo o tercer argumento en función de la evaluación del primer argumento.
Es lógicamente equivalente a CASE WHEN X THEN Y ELSE Z END
.
iif()
es una abreviatura de IF inmediato .
El iif()
La función se introdujo en SQLite 3.32.0, que se lanzó el 22 de mayo de 2020.
Sintaxis
La sintaxis es así:
iif(X,Y,Z)
donde:
- X es la expresión a evaluar.
- Y define lo que se devuelve si la evaluación de X devuelve verdadero.
- Z define lo que se devuelve si la evaluación de X devuelve falso.
Otra forma de verlo es así:
iif(expr, truepart, falsepart)
Ejemplo
Aquí hay un ejemplo básico para demostrar cómo iif()
funciona.
SELECT iif( 1 < 2, "True", "False" );
Resultado:
True
En este caso, la expresión a evaluar fue 1 < 2
. Es cierto que 1 es menor que 2, por lo que se devolvió el segundo argumento.
Esto es el equivalente a hacer lo siguiente.
SELECT
CASE WHEN 1 < 2 THEN "True"
ELSE "False"
END;
Resultado:
True
En estos ejemplos, usé las palabras "Verdadero" y "Falso", pero podría haber usado cualquier cosa.
Por ejemplo, podría haber hecho esto en su lugar:
SELECT iif( 1 < 2, "Fail", "Pass" );
Resultado:
Fail
O podría ser algo completamente eliminado de una respuesta de tipo binario "verdadero" o "falso".
Por ejemplo:
SELECT iif( 1 < 2, "Sticky Rice", "Banana Smoothie" );
Resultado:
Sticky Rice
Ejemplo de base de datos
Aquí hay un ejemplo que usa columnas de una base de datos.
SELECT
ProductName,
Qty,
iif( Qty < 10, "Order more", "Sufficient stock" ) AS Notes
FROM Products;
Resultado:
ProductName Qty Notes ----------- ---------- ---------------- Hammer 10 Sufficient stock Saw 5 Order more Wrench 7 Order more Chisel 9 Order more Bandage 70 Sufficient stock