Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Notat
Denne funktion er i øjeblikket tilgængelig som offentlig prøveversion. Denne prøveversion leveres uden en serviceniveauaftale og anbefales ikke til produktionsarbejdsbelastninger. Visse funktioner understøttes muligvis ikke eller kan have begrænsede funktioner. Du kan finde flere oplysninger under Supplerende vilkår for anvendelse af Microsoft Azure Previews.
Med GQL-udtryk kan du udføre beregninger, sammenligninger og transformationer på data i dine forespørgsler. I kombination med indbyggede funktioner indeholder udtryk effektive værktøjer til databehandling, filtrering og analyse i grafforespørgsler.
Konstanter
Konstanter er simple udtryk, der direkte evalueres til den angivne værdi. Konstanter for hver type værdi forklares detaljeret i GQL-værdier og værdityper.
Eksempel:
1
1.0d
TRUE
"Hello, graph!"
[ 1, 2, 3 ]
NULL
Du kan finde detaljerede konstantsyntaks for hver datatype under GQL-værdier og værdityper.
Prædikater
Prædikater er booleske udtryk, som ofte bruges til at filtrere resultater i GQL-forespørgsler. De evalueres til TRUE, FALSEeller UNKNOWN (null).
Advarsel
Når prædikater bruges som et filter, bevares kun de elementer, som prædikatet evalueres for som TRUE.
Prædikater til sammenligning
Sammenlign værdier ved hjælp af disse operatorer:
-
=(lig med) -
<>(ikke lig med) -
<(mindre end) -
>(større end) -
<=(mindre end eller lig med) -
>=(større end eller lig med)
GQL bruger tre-værdibaseret logik, hvor sammenligninger med null-returnering UNKNOWN:
| Expression | Result |
|---|---|
5 = 5 |
TRUE |
5 = 3 |
FALSE |
5 = NULL |
UNKNOWN |
NULL = NULL |
UNKNOWN |
Du kan se en specifik sammenligningsfunktion i dokumentationen for hver værditype i GQL-værdier og værdityper.
Eksempel:
MATCH (p:Person)
FILTER WHERE p.birthday <= 20050915
RETURN p.firstName
Regler for talundertvingning:
I prioriteret rækkefølge:
- Sammenligningsudtryk, der involverer argumenter med omtrentlige numeriske typer, gennemtvinger alle argumenter, så de har en omtrentlig numerisk type.
- Sammenligningsudtryk, der involverer argumenter for både signerede og ikke-signerede heltalstyper, gennemtvinger alle argumenter, så de er af en heltalstype, der er signeret.
Logiske udtryk
Kombiner betingelser med logiske operatorer:
-
AND(begge betingelser er sande) -
OR(begge betingelser er sande) -
NOT(negerer betingelse)
Eksempel:
MATCH (p:Person)
FILTER WHERE p.birthday <= 20050915 AND p.firstName = 'John'
RETURN p.firstName || ' ' || p.lastName AS fullName
Prædikater for egenskabens eksistens
For at tjekke, om der findes egenskaber, kan du bruge:
p.locationIP IS NOT NULL
p.browserUsed IS NULL
Notat
Forsøg på at tilgå en kendt ikke-eksisterende egenskab resulterer i en syntaksfejl.
Adgang til en potentielt ikke-eksisterende ejendom vurderer til null.
Vurderingen af, om en egenskab er kendt eller potentielt ikke-eksisterende, foretages baseret på typen af den tilgåede node eller kant.
Prædikater for listemedlemskab
Test, om værdierne findes på lister:
p.firstName IN ['Alice', 'Bob', 'Charlie']
p.gender NOT IN ['male', 'female']
Prædikater for strengmønster
Søg efter strenge ved hjælp af mønstermatch:
p.firstName CONTAINS 'John'
p.browserUsed STARTS WITH 'Chrome'
p.locationIP ENDS WITH '.1'
Aritmetiske udtryk
Brug aritmetiske standardoperatorer med numeriske værdier:
-
+(tilføjelse) -
-(subtraktion) -
*(multiplikation) -
/(division)
Aritmetiske operatorer følger generelle matematiske konventioner.
Forrang:
Operatorer følger generelt etablerede regler for rangplacering af operatorer, f.eks * . før +. Brug parenteser til at styre evalueringsrækkefølgen efter behov.
Eksempel:
(p.birthday < 20050915 OR p.birthday > 19651231) AND p.gender = 'male'
Regler for tvangsforanstaltninger:
I prioriteret rækkefølge:
- Aritmetiske udtryk, der involverer argumenter med omtrentlige taltyper, returnerer et resultat af en omtrentlig numerisk type.
- Aritmetiske udtryk, der involverer argumenter af både signerede og usignerede heltalstyper, returnerer et resultat af en signeret heltalstype.
Eksempel:
LET birth_year = p.birthday / 10000
RETURN birth_year
Egenskabsadgang
Access-egenskaber ved hjælp af punktnotation:
p.firstName
edge.creationDate
Listeadgang
Adgang til listeelementer ved hjælp af nulbaseret indeksering:
interests[0] -- first element
interests[1] -- second element
Indbyggede funktioner
GQL understøtter forskellige indbyggede funktioner til databehandling og analyse.
Aggregeringsfunktioner
Aggregeringsfunktioner bruges til at evaluere et udtryk over et sæt rækker og opnå en endelig resultatværdi ved at kombinere de værdier, der beregnes for hver række. Følgende aggregeringsfunktioner understøttes for graph i Microsoft Fabric:
-
count(*)- tæller rækker -
sum(expression)- summerer numeriske værdier -
avg(expression)– beregner gennemsnittet af numeriske værdier -
min(expression)- finder minimumværdien -
max(expression)- finder maksimumværdien -
collect_list(expression)- indsamler værdier på en liste
Aggregeringsfunktioner ignorerer generelt null-værdier og returnerer altid en null-værdi, når der ikke er angivet nogen materialeinputværdier. Du kan bruge coalesce til at få en anden standardværdi: coalesce(sum(expr), 0). Den eneste undtagelse er den count aggregeringsfunktion, der altid tæller de angivne værdier, der ikke er null, og returnerer 0, hvis der ikke er nogen. Bruges count(*) til også at medtage null-værdier i antallet.
Aggregeringsfunktioner bruges på tre forskellige måder:
- Til beregning af (lodrette) aggregeringer over hele tabeller
- Til beregning af (lodrette) aggregeringer over undertables, der bestemmes af en grupperingsnøgle
- Til beregning af (vandrette) aggregeringer over elementerne på en gruppeliste
Lodrette aggregeringer:
-- 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
Vandrette aggregeringer:
Vandret aggregering beregner aggregeringer over elementerne i gruppelistevariabler fra mønstre med variabel længde:
-- 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
Vandret aggregering har altid forrang frem for lodret sammenlægning.
Hvis du vil konvertere en gruppeliste til en almindelig liste, skal du bruge collect_list(edges).
Notat
Du kan se omfattende dækning af sammenlægningsteknikker, herunder kantbinding med variabel længde og kombination af vandret/lodret aggregering, under Avancerede sammenlægningsteknikker.
Streng funktioner
-
char_length(string)- returnerer strenglængden -
upper(string)– returnerer varianten med store bogstaver af den angivne streng (kun US ASCII) -
lower(string)– returnerer en lille variant af den angivne streng (kun US ASCII) -
trim(string)- fjerner foranstillede og efterstillede mellemrum -
string_join(list, separator)– joinforbinder listeelementer med separator
Eksempel:
MATCH (p:Person)
WHERE char_length(p.firstName) > 5
RETURN upper(p.firstName) AS name_upper
Graf funktioner
-
nodes(path)– returnerer noder fra en stiværdi -
edges(path)- returnerer kanter fra en stiværdi -
labels(node_or_edge)- returnerer mærkaterne for en node eller kant som en liste over strenge
Eksempel:
MATCH p=(:Company)<-[:workAt]-(:Person)-[:knows]-{1,3}(:Person)-[:workAt]->(:Company)
RETURN nodes(p) AS chain_of_colleagues
Listefunktioner
-
size(list)– returnerer størrelsen på en listeværdi -
trim(list,n)- trim en liste, så den højst er af størrelsen
Eksempel:
MATCH (p:Person)-[:hasInterest]->(t:Tag)
WHERE size(collect_list(t)) > 3
RETURN p.firstName, collect_list(t.name) AS interests
Tidsmæssige funktioner
-
zoned_datetime()– returnerer den aktuelle zoned datetime -
zoned_datetime("2025-09-12T10:10:52Z")– returnerer zoneinddelt datetime, der er angivet af argumentet i ISO 8601-format
Eksempel:
RETURN zoned_datetime() AS now
Generiske funktioner
-
coalesce(value1, value2, ...)– returnerer den første værdi, der ikke er null
Eksempel:
MATCH (p:Person)
RETURN coalesce(p.firstName, 'Unknown') AS display_name