sql >> Databasteknik >  >> RDS >> SQLite

Hur iif() fungerar i SQLite

I SQLite, iif() är en villkorlig funktion som returnerar det andra eller tredje argumentet baserat på utvärderingen av det första argumentet.

Det motsvarar logiskt sett CASE WHEN X THEN Y ELSE Z END .

iif() är en förkortning för Omedelbar OM .

iif() funktion introducerades i SQLite 3.32.0, som släpptes den 22 maj 2020.

Syntax

Syntaxen ser ut så här:

iif(X,Y,Z)

Var:

  • X är uttrycket som ska utvärderas.
  • Y definierar vad som returneras om utvärderingen av X returnerar sant.
  • Z definierar vad som returneras om utvärderingen av X returnerar falskt.

Ett annat sätt att tänka på det är så här:

iif(expr, truepart, falsepart)

Exempel

Här är ett grundläggande exempel för att visa hur iif() fungerar.

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

Resultat:

True

I det här fallet var uttrycket som skulle utvärderas 1 < 2 . Det är sant att 1 är mindre än 2 så det andra argumentet returnerades.

Detta motsvarar att göra följande.

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

Resultat:

True

I dessa exempel använde jag orden "Sant" och "False" men jag kunde ha använt vad som helst.

Jag kunde till exempel ha gjort så här istället:

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

Resultat:

Fail

Eller det kan vara något helt borttaget från ett "sant" eller "falskt" svar av binär typ.

Till exempel:

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

Resultat:

Sticky Rice

Databasexempel

Här är ett exempel som använder kolumner från en databas.

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

Resultat:

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

  1. Funktion för att få antal veckodagar mellan två datum exklusive helgdagar

  2. 3 sätt att lista alla funktioner i PostgreSQL

  3. Hur fixar man vanliga problem med MySQL-databasen?

  4. Hur man krypterar data i Oracle med PL SQL