Kulcsszavak az Azure Cosmos DB for NoSQL-ben
A KÖVETKEZŐKRE 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éket ad vissza, amely azt jelzi, hogy a célérték két megadott érték között van-e, beleértve a értéket is.
A kulcsszót záradékkal WHERE
is használhatja BETWEEN
olyan lekérdezések kifejezésére, amelyek sztring- vagy numerikus értékek tartományaira szűrik az eredményeket. Az alábbi lekérdezés például az összes olyan elemet visszaadja, amelyben az ár és között 17.25
25.50
van, ú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, ahogy 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
}
]
Megjegyzés
A NoSQL-hez készült API-ban az ANSI SQL-sel ellentétben a tartomány-lekérdezéseket vegyes típusok tulajdonságaival fejezheti ki. Lehet például egy szám, price
mint 5.0
egyes elemekben, és egy sztring, mint fifteenDollars
a többiben. Ezekben az esetekben, mivel a JavaScriptben van, a két különböző típus összehasonlítása a következőt undefined
eredményezi: , így az elem ki lesz hagyva.
DISTINCT
A DISTINCT
kulcsszó kiküszöböli az ismétlődő elemeket az előre jelzett 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 lesz visszaadva.
SELECT DISTINCT VALUE
p.category
FROM
products p
[
"Accessories",
"Tools"
]
Az értékeket akkor is kivetítheti, 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"
}
]
MINT
Logikai értéket ad vissza attól függően, hogy egy adott karaktersztring megfelel-e egy adott mintának. A minták normál karaktereket és helyettesítő karaktereket is tartalmazhatnak.
Tipp
Logikailag egyenértékű lekérdezéseket írhat a LIKE
kulcsszó vagy a RegexMatch
rendszerfüggvény használatával. 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 lehetőség kiválasztása nagyrészt a szintaktikai beállításokon alapul.
Megjegyzés
Mivel LIKE
használhat indexet, érdemes létrehoznia egy tartományindexet a használatával LIKE
összehasonlítandó tulajdonságokhoz.
A LIKE karakterekkel a következő helyettesítő karakterek használhatók:
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ányon belül ([a-f] ) vagy beállításban ([abcdef] ). |
WHERE c.description LIKE "%SO[t-z]PS%" |
[^] |
A megadott tartományon[^a-f] () vagy halmazon () belül nem található egyetlen karakter.[^abcdef] |
WHERE c.description LIKE "%SO[^abc]PS%" |
A %
karakter egyezik bármely nulla vagy több karakterből álló sztringgel. Ha például a-t %
a minta elején és végén helyezi el, a következő lekérdezés az összes olyan elemet visszaadja, ahol a megadott mező a kifejezést részkarakterláncként tartalmazza:
SELECT VALUE
p.name
FROM
products p
WHERE
p.name LIKE "%driver%"
Ha csak a minta végén használt karaktert %
, csak a következővel kezdődő fruit
leírású 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 szeretné egyeztetni a megadott értékkel:
SELECT VALUE
p.name
FROM
products p
WHERE
p.name LIKE "Road%"
A NOT
kulcsszó inverzként adja meg a LIKE
kulcsszó kifejezésértékelésének eredményét. Ez a példa az összes olyan elemet visszaadja, amely nem felel meg a kifejezésnek LIKE
.
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 feloldó karakterként értelmezi a ^
karaktert, hogy feloldhassa a adott példányát %
.
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ójelek közé 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.
Elemzett érték | |
---|---|
LIKE "20-30[%]" |
20-30% |
LIKE "[_]n" |
_n |
LIKE "[ [ ]" |
[ |
LIKE "]" |
] |
IN
IN
A kulcsszóval ellenőrizheti, hogy egy megadott érték megfelel-e a lista bármely értékének. Az alábbi lekérdezés például az összes olyan elemet visszaadja, amelyben a kategória egyezik egy lista legalább egy értékével.
SELECT
*
FROM
products p
WHERE
p.category IN ("Accessories", "Clothing")
Tipp
Ha felveszi a partíciókulcsot a IN
szűrőbe, a lekérdezés automatikusan csak a megfelelő partíciókra szűr.
TOP
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 első számú rendezett értékre való N
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
vannak hatással.
A paraméteres TOP
lekérdezésekkel használhat állandó értéket, ahogyan az alábbi példában is látható, vagy egy változó értékkel.
SELECT TOP 10
*
FROM
products p
ORDER BY
p.price ASC