sql >> Base de Datos >  >> RDS >> SQLite

Cómo funciona iif() en SQLite

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