Huomautus
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Note
Tämä ominaisuus on tällä hetkellä julkisessa esikatselussa. Tämä esikatselu tarjotaan ilman palvelutasosopimusta, eikä sitä suositella tuotantokuormituksiin. Tiettyjä ominaisuuksia ei ehkä tueta tai niiden ominaisuudet voivat olla rajoitettuja. Lisätietoja on artikkelissa Microsoft Azure -esiversioiden lisäkäyttöehdot.
GQL-lausekkeiden avulla voit suorittaa kyselyiden sisältämien tietojen laskutoimituksia, vertailuja ja muunnoksia. Valmiiden funktioiden lisäksi lausekkeet tarjoavat tehokkaita työkaluja tietojen käsittelyyn, suodattamiseen ja analysointiin kaaviokyselyissä.
Literaalit
Literaalit ovat yksinkertaisia lausekkeita, jotka arvioivat suoraan ilmoitetun arvon. Kunkin arvotyypin literaalit selitetään yksityiskohtaisesti GQL-arvoissa ja arvotyypeissä.
Esimerkki:
1
1.0
TRUE
"Hello, graph!"
[ 1, 2, 3 ]
NULL
Jokaisen tietotyypin yksityiskohtainen literaalisyntaksi on kohdassa GQL-arvot ja arvotyypit.
Predikaatit
Predikaatit ovat totuusarvolausekkeita, joita käytetään yleisesti suodattamaan tuloksia GQL-kyselyissä. Ne saavat arvon TRUE, FALSEtai UNKNOWN (tyhjäarvo).
Varoitus
Suodattimena käytettynä predikaatit säilyttävät vain ne kohteet, joiden predikaatti arvioi arvoksi TRUE.
Vertailupredikaatit
Vertaa arvoja käyttämällä näitä operaattoreita:
-
=(yhtä suuri) -
<>(eri suuri kuin) -
<(pienempi kuin) -
>(suurempi kuin) -
<=(pienempi tai yhtä suuri kuin) -
>=(suurempi tai yhtä suuri kuin)
GQL käyttää kolmiarvoista logiikkaa, jossa vertailu tyhjäarvon kanssa palauttaa UNKNOWN:
| Lauseke | Tulos |
|---|---|
5 = 5 |
TRUE |
5 = 3 |
FALSE |
5 = NULL |
UNKNOWN |
NULL = NULL |
UNKNOWN |
Jos haluat tarkan vertailukäyttäytymisen, tutustu kunkin arvotyypin dokumentaatioon GQL-arvoissa ja arvotyypeissä.
Esimerkki:
MATCH (p:Person)
FILTER WHERE p.birthday <= 20050915
RETURN p.firstName
Lukujen pakottamisen säännöt:
Käsittelyjärjestys:
- Vertailulausekkeet, joihin liittyy likimääräisten numeeristen tyyppien argumentteja, pakottavat kaikki argumentit olemaan likimääräisiä numeerisia.
- Vertailulausekkeet, jotka sisältävät sekä allekirjoitettujen että allekirjoittamattomien kokonaislukutyyppien argumentteja, pakottavat kaikki argumentit olemaan allekirjoitettuja kokonaislukutyyppejä.
Loogiset lausekkeet
Yhdistä ehdot loogisiin operaattoreihin:
-
AND(molemmat ehdot toteutuvat) -
OR(jompikumpi ehdoista on tosi) -
NOT(negatiivisen ehdon)
Esimerkki:
MATCH (p:Person)
FILTER WHERE p.birthday <= 20050915 AND p.firstName = 'John'
RETURN p.firstName || ' ' || p.lastName AS fullName
Ominaisuuden olemassaolon predikaatit
Ominaisuudet, jotka eivät ole mitään, ovat NULLaina . Näin ollen voit tarkistaa, onko ominaisuuksia olemassa, käyttämällä:
p.locationIP IS NOT NULL
p.browserUsed IS NULL
Jäsenyyksien luettelopredikaatit
Testaa, ovatko arvot luetteloissa:
p.firstName IN ['Alice', 'Bob', 'Charlie']
p.gender NOT IN ['male', 'female']
Merkkijonon mallipredikaatit
Täsmää merkkijonot käyttäen mallien vastaavuutta:
p.firstName CONTAINS 'John'
p.browserUsed STARTS WITH 'Chrome'
p.locationIP ENDS WITH '.1'
Aritmeettiset lausekkeet
Käytä aritmeettisia vakio-operaattoreita numeeristen arvojen kanssa:
-
+(yhteenlasku) -
-(vähennyslasku) -
*(kertolasku) -
/(jakolasku)
Aritmeettiset operaattorit noudattavat yleisiä matemaattisia käytäntöjä.
Etusija:
Yleensä operaattorit noudattavat vakiintuneita operaattoreiden käsittelyjärjestyssääntöjä, kuten * ennen +. Käytä sulkeita, jotta voit hallita arviointijärjestystä tarpeen mukaan.
Esimerkki:
(p.birthday < 20050915 OR p.birthday > 19651231) AND p.gender = 'male'
Pakottamissäännöt:
Käsittelyjärjestys:
- Aritmeettiset lausekkeet, joihin liittyy likimääräisten lukutyyppien argumentteja, palauttavat likimääräisen numeerisen tyypin tuloksen.
- Sekä allekirjoitettujen että allekirjoittamattomien kokonaislukutyyppien argumentteja sisältävät aritmeettiset lausekkeet palauttavat allekirjoitetun kokonaislukutyypin tuloksen.
Esimerkki:
LET birth_year = p.birthday / 10000
RETURN birth_year
Ominaisuuden käyttö
Käytä ominaisuuksia pistemerkinnän avulla:
p.firstName
edge.creationDate
Luettelon käyttöoikeudet
Käytä luettelon elementtejä käyttämällä nollapohjaista indeksointia:
interests[0] -- first element
interests[1] -- second element
Sisäiset funktiot
GQL tukee erilaisia sisäisiä funktioita tietojenkäsittelyyn ja analysointiin.
Koostefunktiot
Koostefunktioita käytetään arvioimaan lauseke rivijoukolle ja hankkimaan lopullinen tulosarvo yhdistämällä kullekin riville lasketut arvot. Microsoft Fabric -kaavio tukee seuraavia koostefunktioita:
-
count(*)- laskee rivejä -
sum(expression)- numeeristen arvojen summa -
avg(expression)- numeeristen arvojen keskiarvo -
min(expression)- etsii vähimmäisarvon -
max(expression)- etsii suurimman arvon -
collect_list(expression)- kerää arvot luetteloon
Yleensä koostefunktiot ohittavat tyhjäarvot ja palauttavat aina tyhjäarvon, kun mitään materiaalisyötearvoja ei anneta. Voit hankkia muun oletusarvon -arvon -parametrin avulla coalesce : coalesce(sum(expr), 0). Ainoa poikkeus on koostefunktio count , joka laskee aina annetut muut kuin tyhjäarvot ja palauttaa arvon 0, jos sellaisia ei ole. Käytä tätä count(*) , jos haluat sisällyttää myös tyhjäarvot määrään.
Koostefunktioita käytetään kolmella eri tavalla:
- Tietojenkäsittelyn (pystysuora) koosteet kokonaisille taulukoille
- Tietojenkäsittely (vertikaali) koostaa ryhmittelyavaimen määrittämien alitaulukoiden osalta
- Laskennan (vaakasuuntainen) koostaminen ryhmäluettelon elementeille
Pystysuuntaiset koosteet:
-- Vertical aggregate over whole table
MATCH (p:Person)
RETURN count(*) AS total_people, avg(p.birthday) AS average_birth_year
-- Vertical aggregate with grouping
MATCH (p:Person)-[:isLocatedIn]->(c:City)
RETURN c.name, count(*) AS population, avg(p.birthday) AS average_birth_year
GROUP BY c.name
Vaakasuuntaiset koosteet:
Vaakasuuntainen koostaminen koostaa ryhmittelyluettelon muuttujien elementit vaihtelevan pituisista malleista:
-- Horizontal aggregate over a group list variable
MATCH (p:Person)-[edges:knows]->{1,3}(:Person)
RETURN p.firstName, avg(edges.creationDate) AS avg_connection_date
Vaakasuuntainen koostaminen on aina etusijalla pystysuuntaisen koosteen sijaan.
Jos haluat muuntaa ryhmäluettelon tavalliseksi luetteloksi, käytä .collect_list(edges)
Note
Kattava kattavuus koostamistekniikoista, mukaan lukien vaihtelevan pituinen reunan sidonta ja vaaka-/pystysuuntaisen koosteen yhdistäminen, on artikkelissa Lisäkoosteiden tekniikat.
Merkkijono-funktiot
-
char_length(string)- palauttaa merkkijonon pituuden -
upper(string)- palauttaa annetun merkkijonon isot kirjaimet (vain US ASCII) -
lower(string)- palauttaa annetun merkkijonon pienet kirjaimet (vain US ASCII) -
trim(string)- poistaa alussa ja lopussa olevat välilyönnit -
string_join(list, separator)- liittää luetteloelementit erottimella
Esimerkki:
MATCH (p:Person)
WHERE char_length(p.firstName) > 5
RETURN upper(p.firstName) AS name_upper
Kaavion funktiot
-
nodes(path)– palauttaa solmut polkuarvosta -
edges(path)– palauttaa reunat polkuarvosta -
labels(node_or_edge)– palauttaa solmun tai reunan selitteet merkkijonoluettelona
Esimerkki:
MATCH p=(:Company)<-[:workAt]-(:Person)-[:knows]-{1,3}(:Person)-[:workAt]->(:Company)
RETURN nodes(p) AS chain_of_colleagues
Luettelotoiminnot
-
size(list)- palauttaa luetteloarvon koon -
trim(list,n)- rajataan luettelo, joka on suurin osa koostan
Esimerkki:
MATCH (p:Person)-[:hasInterest]->(t:Tag)
WHERE size(collect_list(t)) > 3
RETURN p.firstName, collect_list(t.name) AS interests
Ajalliset funktiot
-
zoned_datetime()- palauttaa nykyisen vyöhykkeen päivämäärän ja ajan -
zoned_datetime("2025-09-12T10:10:52Z")- palauttaa vyöhykkeen päivämäärän ja ajan, jonka argumentti antaa ISO 8601 -muodossa
Esimerkki:
RETURN zoned_datetime() AS now
Yleiset funktiot
-
coalesce(value1, value2, ...)– palauttaa ensimmäisen muun kuin tyhjäarvon
Esimerkki:
MATCH (p:Person)
RETURN coalesce(p.firstName, 'Unknown') AS display_name