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ó LIKE
tulajdonsá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ő fruit
leí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