IIF (kueri NoSQL)

BERLAKU UNTUK: NoSQL

Mengevaluasi ekspresi boolean dan mengembalikan hasil dari salah satu dari dua ekspresi tergantung pada hasil ekspresi boolean. Jika ekspresi boolean mengevaluasi ke true, kembalikan opsi ekspresi pertama. Jika tidak, kembalikan opsi ekspresi kedua.

Sintaks

IIF(<bool_expr>, <true_expr>, <not_true_expr>)

Argumen

Deskripsi
bool_expr Ekspresi boolean, yang dievaluasi dan digunakan untuk menentukan ekspresi tambahan mana yang akan digunakan.
true_expr Ekspresi yang akan dikembalikan jika ekspresi boolean dievaluasi ke true.
not_true_expr Ekspresi yang akan dikembalikan jika ekspresi boolean dievaluasi ke NOTtrue.

Jenis yang ditampilkan

Mengembalikan ekspresi, yang bisa dari jenis apa pun.

Contoh

Contoh pertama ini mengevaluasi ekspresi boolean statis dan mengembalikan salah satu dari dua ekspresi potensial.

SELECT VALUE {
    evalTrue: IIF(true, 123, 456),
    evalFalse: IIF(false, 123, 456),
    evalNumberNotTrue: IIF(123, 123, 456),
    evalStringNotTrue: IIF("ABC", 123, 456),
    evalArrayNotTrue: IIF([1,2,3], 123, 456),
    evalObjectNotTrue: IIF({"name": "Alice", "age": 20}, 123, 456)
}
[
  {
    "evalTrue": 123,
    "evalFalse": 456,
    "evalNumberNotTrue": 456,
    "evalStringNotTrue": 456,
    "evalArrayNotTrue": 456,
    "evalObjectNotTrue": 456
  }
]

Contoh ini mengevaluasi salah satu dari dua ekspresi potensial pada beberapa item dalam kontainer berdasarkan ekspresi yang mengevaluasi properti boolean.

[
  {
    "name": "Estrel Set Cutlery",
    "onSale": true,
    "category": "camp-utensils",
    "pricing": {
      "msrp": 55.95,
      "sale": 30.85
    }
  },
  {
    "name": "Willagno Spork",
    "onSale": false,
    "category": "camp-utensils",
    "pricing": {
      "msrp": 20.15,
      "sale": 12.55
    }
  }
]

Kueri menggunakan bidang dalam item asli.

SELECT
    p.name,
    IIF(p.onSale, p.pricing.sale, p.pricing.msrp) AS price
FROM
    products p
WHERE
    p.category = "camp-utensils"
[
  {
    "name": "Estrel Set Cutlery",
    "price": 30.85
  },
  {
    "name": "Willagno Spork",
    "price": 20.15
  }
]

Keterangan

  • Fungsi ini mirip dengan operator bersyarat ternary dalam berbagai bahasa pemrograman. Untuk informasi selengkapnya, lihat operator bersyarat ternary.
  • Fungsi ini tidak menggunakan indeks.

Lihat juga