Megosztás a következőn keresztül:


Kulcsszavak az Azure Cosmos DB for NoSQL-ben

A KÖVETKEZŐRE VONATKOZIK: NoSQL

Az Azure Cosmos DB for NoSQL lekérdezési nyelve fenntartott kulcsszavakat tartalmaz, amelyeket a kiterjesztett funkciók lekérdezéseiben használnak.

BETWEEN

A BETWEEN kulcsszó egy logikai értékre van kiértékelve, amely azt jelzi, hogy a célérték két megadott érték között van-e, beleértve azt is.

A BETWEEN kulcsszóval záradékkal WHERE olyan lekérdezéseket fejezhet ki, amelyek sztring- vagy numerikus értékek tartományára szűrik az eredményeket. Az alábbi lekérdezés például az összes olyan elemet visszaadja, amelyben az ár a kettő között 17.25 van, és 25.50újra belefoglalva.

SELECT VALUE
    p.price
FROM
    products p
WHERE
    p.price BETWEEN 17.25 AND 25.50
[
  20
]

A kulcsszót a BETWEEN záradékban SELECT is használhatja, ahogyan az alábbi példában is látható.

SELECT 
    (p.price BETWEEN 0 AND 10) AS booleanLessThanTen,
    p.price
FROM
    products p
[
  {
    "booleanLessThanTen": false,
    "price": 20.0
  },
  {
    "booleanLessThanTen": true,
    "price": 7.5
  }
]

Feljegyzés

A NoSQL API-ban az ANSI SQL-sel ellentétben tartomány-lekérdezéseket is kifejezhet a vegyes típusok tulajdonságaihoz. Lehet például egy szám, price mint 5.0 egyes elemekben és egy sztringben, mint fifteenDollars másokban. Ezekben az esetekben, mint a JavaScriptben, a két különböző típus összehasonlítása adódik undefined, így az elem kihagyva.

KÜLÖNBÖZŐ

A DISTINCT kulcsszó kiküszöböli az ismétlődő elemeket a tervezett lekérdezési eredményekben.

Ebben a példában a lekérdezés az egyes termékkategóriák értékeit jeleníti meg. Ha két kategória egyenértékű, az eredményekben csak egyetlen előfordulás ad vissza.

SELECT DISTINCT VALUE
    p.category
FROM
    products p
[
  "Accessories",
  "Tools"
]

Akkor is kivetíthet értékeket, ha a célmező nem létezik. Ebben az esetben a mező nem létezik az egyik elemben, ezért a lekérdezés egy üres objektumot ad vissza az adott egyedi értékhez.

SELECT DISTINCT
    p.category
FROM
    products p

Az eredmény a következő:

[
  {},
  {
    "category": "Accessories"
  },
  {
    "category": "Tools"
  }
]

SZERET

Logikai értéket ad vissza attól függően, hogy egy adott karaktersztring megfelel-e egy adott mintának. A minta tartalmazhat normál karaktereket és helyettesítő karaktereket.

Tipp.

A kulcsszó vagy a LIKE RegexMatch rendszerfüggvény használatával logikailag egyenértékű lekérdezéseket írhat. Ugyanazt az indexkihasználtságot fogja megfigyelni, függetlenül attól, hogy melyik lehetőséget választja. A használni kívánt beállítás kiválasztása nagyrészt a szintaxis beállításain alapul.

Feljegyzés

Mivel LIKE használhatja az indexet, létre kell hoznia egy tartományindexet az összehasonlítandó LIKEtulajdonságokhoz.

A következő helyettesítő karaktereket használhatja a LIKE használatával:

Leírás Példa
% Bármely nulla vagy több karakterből álló sztring. WHERE c.description LIKE "%SO%PS%"
_(aláhúzás) Bármely karakter. WHERE c.description LIKE"%SO_PS%"
[ ] Bármely karakter a megadott tartományban ([a-f]) vagy beállításban ([abcdef]). WHERE c.description LIKE "%SO[t-z]PS%"
[^] Bármely olyan karakter, amely nem tartozik a megadott tartományba ([^a-f]) vagy be van állítva ([^abcdef]). WHERE c.description LIKE "%SO[^abc]PS%"

A % karakter egyezik a nulla vagy több karakterből álló karakterlánccal. Ha például a minta elején és végén helyez el egy % elemet, az alábbi lekérdezés az összes olyan elemet visszaadja, amelyben a megadott mező a kifejezést részsztringként tartalmazza:

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name LIKE "%driver%"

Ha csak a minta végén használt karaktert % , akkor csak a következővel kezdődő fruitleírással rendelkező elemeket adná vissza:

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name LIKE "%glove"

Hasonlóképpen, a minta elején lévő helyettesítő karakter azt jelzi, hogy az értékeket előtagként a megadott értékkel szeretné egyezni:

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name LIKE "Road%"

A NOT kulcsszó inverz a kulcsszó kifejezésértékelésének LIKE eredményét. Ez a példa minden olyan elemet visszaad, amely nem egyezik a kifejezésselLIKE.

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name NOT LIKE "%winter%"

A záradék használatával olyan mintákat kereshet, amelyek egy vagy több helyettesítő karaktert ESCAPE tartalmaznak. Ha például olyan leírásokat szeretne keresni, amelyek tartalmazzák a sztringet 20%, nem szeretné helyettesítő karakterként értelmezni a % karaktert. Ez a példa a ^ feloldó karaktert értelmezi, hogy megmenekülhessen egy adott példánytól %.

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.description LIKE "%20^%%" ESCAPE "^"

A helyettesítő karaktereket szögletes zárójelek közé foglalva konstans karakterekként kezelheti őket. Ha szögletes zárójelbe foglal egy helyettesítő karaktert, eltávolítja a speciális attribútumokat. Ez a táblázat példákat tartalmaz a literális karakterekre.

Elemezett érték
LIKE "20-30[%]" 20-30%
LIKE "[_]n" _n
LIKE "[ [ ]" [
LIKE "]" ]

IN

IN A kulcsszóval ellenőrizheti, hogy egy megadott érték egyezik-e a lista bármely értékével. Az alábbi lekérdezés például az összes olyan elemet visszaadja, amelyben a kategória egyezik a lista legalább egyik értékével.

SELECT
    *
FROM
    products p
WHERE
    p.category IN ("Accessories", "Clothing")

Tipp.

Ha a partíciókulcsot belefoglalja a IN szűrőbe, a lekérdezés automatikusan csak a megfelelő partíciókra szűr.

FELSŐ

A TOP kulcsszó a lekérdezési eredmények első N számát adja vissza meghatározatlan sorrendben. Ajánlott eljárásként használja TOP a záradékot az ORDER BY eredmények N első számú rendezett értékre való korlátozásához. A két záradék kombinálása az egyetlen módja annak, hogy előre jelezze, mely sorok TOP érintik.

Az alábbi példához hasonlóan állandó értékkel vagy paraméteres lekérdezésekkel is használható TOP .

SELECT TOP 10
    *
FROM
    products p
ORDER BY
    p.price ASC