sql >> データベース >  >> RDS >> SQLite

SQLiteでiif()がどのように機能するか

    SQLiteでは、iif() は、最初の引数の評価に基づいて2番目または3番目の引数を返す条件関数です。

    これは、CASE WHEN X THEN Y ELSE Z ENDと論理的に同等です。 。

    iif() Immediate IFの略語です。 。

    iif() この関数は、2020年5月22日にリリースされたSQLite3.32.0で導入されました。

    構文

    構文は次のようになります:

    iif(X,Y,Z)

    場所:

    • X 評価する式です。
    • Y Xの評価が返されるものを定義します trueを返します。
    • Z Xの評価が返されるものを定義します falseを返します。

    別の考え方は次のようになります:

    iif(expr, truepart, falsepart)

    iif()の方法を示す基本的な例を次に示します。 動作します。

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

    結果:

    True

    この場合、評価する式は1 < 2でした。 。 1が2未満であるため、2番目の引数が返されました。

    これは、次のことを行うのと同じです。

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

    結果:

    True

    これらの例では、「True」と「False」という単語を使用しましたが、何でも使用できました。

    たとえば、代わりにこれを行うことができます:

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

    結果:

    Fail

    または、「真」または「偽」のバイナリタイプの回答から完全に削除されたものである可能性があります。

    例:

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

    結果:

    Sticky Rice

    データベースの例

    これは、データベースの列を使用する例です。

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

    結果:

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

    1. EBSR12の開始および停止スクリプト

    2. MySQLのELT()に相当するSQL Serverは何ですか?

    3. エラーの修正:SQLiteの「UNIONの左右のSELECTには同じ数の結果列がありません」

    4. PostgreSQLで値に少なくとも1桁の数字が含まれているかどうかを検出する