SQLite
 sql >> Database >  >> RDS >> SQLite

Come funziona iif() in SQLite

In SQLite, iif() è una funzione condizionale che restituisce il secondo o il terzo argomento in base alla valutazione del primo argomento.

È logicamente equivalente a CASE WHEN X THEN Y ELSE Z END .

iif() è l'abbreviazione di IF immediato .

Il iif() la funzione è stata introdotta in SQLite 3.32.0, rilasciata il 22 maggio 2020.

Sintassi

La sintassi è questa:

iif(X,Y,Z)

Dove:

  • X è l'espressione da valutare.
  • S definisce cosa viene restituito se la valutazione di X restituisce vero.
  • Z definisce cosa viene restituito se la valutazione di X restituisce falso.

Un altro modo per pensarci è questo:

iif(expr, truepart, falsepart)

Esempio

Ecco un esempio di base per dimostrare come iif() funziona.

SELECT iif( 1 < 2, "True", "False" );

Risultato:

True

In questo caso, l'espressione da valutare era 1 < 2 . È vero che 1 è minore di 2, quindi è stato restituito il secondo argomento.

Questo equivale a fare quanto segue.

SELECT 
  CASE WHEN 1 < 2 THEN "True"
    ELSE "False"
  END;

Risultato:

True

In questi esempi ho usato le parole “Vero” e “Falso” ma avrei potuto usare qualsiasi cosa.

Ad esempio, avrei potuto farlo invece:

SELECT iif( 1 < 2, "Fail", "Pass" );

Risultato:

Fail

Oppure potrebbe essere qualcosa di completamente rimosso da una risposta di tipo binario "vera" o "falsa".

Ad esempio:

SELECT iif( 1 < 2, "Sticky Rice", "Banana Smoothie" );

Risultato:

Sticky Rice

Esempio di database

Ecco un esempio che utilizza le colonne di un database.

SELECT 
  ProductName,
  Qty,
  iif( Qty < 10, "Order more", "Sufficient stock" ) AS Notes
FROM Products;

Risultato:

ProductName  Qty         Notes           
-----------  ----------  ----------------
Hammer       10          Sufficient stock
Saw          5           Order more      
Wrench       7           Order more      
Chisel       9           Order more      
Bandage      70          Sufficient stock