SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Jak iif() działa w SQLite

W SQLite, iif() jest funkcją warunkową, która zwraca drugi lub trzeci argument na podstawie oceny pierwszego argumentu.

Jest logicznie odpowiednikiem CASE WHEN X THEN Y ELSE Z END .

iif() to skrót od Natychmiastowe JEŻELI .

iif() funkcja została wprowadzona w wersji SQLite 3.32.0, która została wydana 22 maja 2020 r.

Składnia

Składnia wygląda tak:

iif(X,Y,Z)

Gdzie:

  • X jest wyrażeniem do oceny.
  • T definiuje, co jest zwracane, jeśli ocena X zwraca prawdę.
  • Z definiuje, co jest zwracane, jeśli ocena X zwraca fałsz.

Inny sposób myślenia jest taki:

iif(expr, truepart, falsepart)

Przykład

Oto podstawowy przykład pokazujący, jak iif() działa.

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

Wynik:

True

W tym przypadku wyrażenie do oceny to 1 < 2 . Prawdą jest, że 1 jest mniejsze niż 2, więc został zwrócony drugi argument.

Jest to równoważne z wykonaniem następujących czynności.

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

Wynik:

True

W tych przykładach użyłem słów „Prawda” i „Fałsz”, ale mogłem użyć wszystkiego.

Na przykład mógłbym zrobić to zamiast tego:

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

Wynik:

Fail

Lub może to być coś całkowicie usuniętego z „prawdziwej” lub „fałszywej” odpowiedzi typu binarnego.

Na przykład:

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

Wynik:

Sticky Rice

Przykład bazy danych

Oto przykład, który wykorzystuje kolumny z bazy danych.

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLiteOpenHelper:metoda onCreate() nie jest wywoływana na urządzeniu fizycznym

  2. Zapytanie Android SQLite, w którym kolumna nie jest pusta i nie jest pusta

  3. Android z pokojem - Jak ustawić klucz obcy, który może być nullable

  4. Dlaczego otrzymuję wyjątek java.lang.IllegalArgumentException:wartość wiązania w indeksie 1 jest w tym przypadku null?

  5. Jak działa SQLite Rtrim()