Sdílet prostřednictvím


Klíčová slova ve službě Azure Cosmos DB for NoSQL

PLATÍ PRO: NoSQL

Dotazovací jazyk služby Azure Cosmos DB for NoSQL obsahuje sadu rezervovaných klíčových slov, která se používají v dotazech pro rozšířené funkce.

BETWEEN

Klíčové BETWEEN slovo se vyhodnotí jako logická hodnota označující, jestli je cílová hodnota mezi dvěma zadanými hodnotami včetně.

Klíčové slovo s WHERE klauzulí můžete použít BETWEEN k vyjádření dotazů, které filtrují výsledky s rozsahy řetězců nebo číselných hodnot. Například následující dotaz vrátí všechny položky, ve kterých je cena mezi 17.25 a 25.50znovu včetně.

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

Můžete také použít BETWEEN klíčové slovo v SELECT klauzuli, jako v následujícím příkladu.

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

Poznámka:

V rozhraní API pro NoSQL můžete na rozdíl od ANSI SQL vyjádřit dotazy rozsahu na vlastnosti smíšených typů. Může to být například price číslo jako 5.0 v některých položkách a řetězec jako fifteenDollars v jiných. V těchto případech, protože je v JavaScriptu, porovnání mezi dvěma různými typy má za undefinednásledek , takže položka se přeskočí.

ZŘETELNÝ

Klíčové DISTINCT slovo eliminuje duplicity ve výsledcích předpokládaného dotazu.

V tomto příkladu se dotazují na hodnoty projektů pro každou kategorii produktu. Pokud jsou dvě kategorie ekvivalentní, vrátí se ve výsledcích pouze jeden výskyt.

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

Hodnoty projektu můžete projektovat i v případě, že cílové pole neexistuje. V tomto případě pole v některé z položek neexistuje, takže dotaz vrátí prázdný objekt pro danou jedinečnou hodnotu.

SELECT DISTINCT
    p.category
FROM
    products p

Výsledky jsou následující:

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

LIKE

Vrátí logickou hodnotu v závislosti na tom, jestli určitý znakový řetězec odpovídá zadanému vzoru. Vzor může obsahovat běžné znaky a zástupné znaky.

Tip

Logicky ekvivalentní dotazy můžete psát pomocí klíčového LIKE RegexMatch slova nebo systémové funkce. Uvidíte stejné využití indexu bez ohledu na to, kterou možnost zvolíte. Volba, kterou možnost použít, je z velké části založena na předvolbě syntaxe.

Poznámka:

Protože LIKE můžete použít index, měli byste vytvořit index rozsahu pro vlastnosti, které porovnáváte pomocí LIKE.

Následující zástupné znaky můžete použít pomocí funkce LIKE:

Popis Příklad
% Libovolný řetězec s nulovými nebo více znaky. WHERE c.description LIKE "%SO%PS%"
_(podtržítko) Libovolný jeden znak. WHERE c.description LIKE"%SO_PS%"
[ ] Libovolný jeden znak v zadaném rozsahu ([a-f]) nebo sadě ([abcdef]). WHERE c.description LIKE "%SO[t-z]PS%"
[^] Libovolný jeden znak, který není v zadaném rozsahu ([^a-f]) nebo v sadě ([^abcdef]). WHERE c.description LIKE "%SO[^abc]PS%"

Znak % odpovídá libovolnému řetězci s nulovými nebo více znaky. Například umístěním % na začátek a konec vzoru vrátí následující dotaz všechny položky, ve kterých zadané pole obsahuje frázi jako podřetězeč:

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

Pokud jste použili % pouze znak na konci vzoru, vrátili byste pouze položky s popisem fruit, který začínal na:

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

Podobně zástupný znak na začátku vzoru označuje, že chcete shodovat hodnoty se zadanou hodnotou jako předponu:

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

Klíčové NOT slovo inverzní k výsledku vyhodnocení výrazu LIKE klíčového slova. Tento příklad vrátí všechny položky, které neodpovídají výrazuLIKE.

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

Pomocí klauzule můžete vyhledat vzory, které obsahují jeden nebo více zástupných znaků ESCAPE . Pokud byste například chtěli vyhledat popisy, které obsahoval řetězec 20%, nebudete chtít interpretovat % jako zástupný znak. Tento příklad interpretuje ^ jako řídicí znak, takže můžete utéct konkrétní instanci %.

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

Zástupné znaky můžete uzavřít do závorek, abyste je mohli považovat za literální znaky. Když uzavřete zástupný znak do závorek, odeberete všechny speciální atributy. Tato tabulka obsahuje příklady literálových znaků.

Parsovaná hodnota
LIKE "20-30[%]" 20-30%
LIKE "[_]n" _n
LIKE "[ [ ]" [
LIKE "]" ]

IN

Pomocí klíčového IN slova zkontrolujte, jestli zadaná hodnota odpovídá libovolné hodnotě v seznamu. Následující dotaz například vrátí všechny položky, ve kterých kategorie odpovídá alespoň jedné z hodnot v seznamu.

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

Tip

Pokud do filtru zahrnete klíč oddílu IN , dotaz automaticky vyfiltruje jenom příslušné oddíly.

TOP

Klíčové TOP slovo vrátí první N počet výsledků dotazu v nedefinované pořadí. Osvědčeným postupem je použití TOP ORDER BY klauzule k omezení výsledků na první N počet seřazených hodnot. Kombinace těchto dvou klauzulí je jediným způsobem, jak předvídatelně určit, které řádky TOP ovlivňují.

Můžete použít TOP s konstantní hodnotou, jako v následujícím příkladu, nebo s proměnnou hodnotou pomocí parametrizovaných dotazů.

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