หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
Note
คุณลักษณะนี้อยู่ในการแสดงตัวอย่างสาธารณะ การแสดงตัวอย่างนี้จะมีให้โดยไม่มีข้อตกลงระดับบริการ และไม่แนะนําสําหรับปริมาณงานการผลิต คุณลักษณะบางอย่างอาจไม่ได้รับการสนับสนุนหรืออาจมีความสามารถที่จํากัด สําหรับข้อมูลเพิ่มเติม ให้ดู เงื่อนไขเพิ่มเติมของการใช้สําหรับการแสดงตัวอย่าง Microsoft Azure
นิพจน์ GQL ช่วยให้คุณดําเนินการคํานวณ การเปรียบเทียบ และการแปลงข้อมูลภายในคิวรีของคุณ นิพจน์เหล่านี้มีเครื่องมือที่มีประสิทธิภาพสําหรับการประมวลผลข้อมูล การกรอง และการวิเคราะห์ในการคิวรีกราฟ
สัญพจน์
สัญพจน์เป็นนิพจน์แบบง่ายที่ประเมินโดยตรงไปยังค่าที่ระบุ สัญพจน์ของค่าแต่ละชนิดจะอธิบายโดยละเอียดในค่า GQL และชนิดค่า
ตัวอย่าง:
1
1.0d
TRUE
"Hello, graph!"
[ 1, 2, 3 ]
NULL
สําหรับไวยากรณ์สัญพจน์โดยละเอียดสําหรับแต่ละชนิดข้อมูล ให้ดู ค่า GQL และชนิดของค่า
เพรดิเคต
เพรดิเคตคือนิพจน์บูลีนซึ่งมักใช้ในการกรองผลลัพธ์ในคิวรี GQL ซึ่งจะประเมินเป็น TRUE, FALSEหรือ UNKNOWN (null)
ข้อควรระวัง
เมื่อใช้เป็นตัวกรอง เพรดิเคตจะเก็บเฉพาะรายการเหล่านั้นที่เพรดิเคตประเมินเป็นTRUE
เพรดิเคตการเปรียบเทียบ
เปรียบเทียบค่าโดยใช้ตัวดําเนินการเหล่านี้:
-
=(เท่ากับ) -
<>(ไม่เท่ากับ) -
<(น้อยกว่า) -
>(มากกว่า) -
<=(น้อยกว่าหรือเท่ากับ) -
>=(มากกว่าหรือเท่ากับ)
GQL ใช้ตรรกะแบบสามค่าที่การเปรียบเทียบกับค่าส่งกลับ UNKNOWNnull :
| นิพจน์ | ผลลัพธ์ |
|---|---|
5 = 5 |
TRUE |
5 = 3 |
FALSE |
5 = NULL |
UNKNOWN |
NULL = NULL |
UNKNOWN |
สําหรับพฤติกรรมการเปรียบเทียบเฉพาะ โปรดดูเอกสารสําหรับค่าแต่ละชนิดในค่า GQL และชนิดของค่า
ตัวอย่าง:
MATCH (p:Person)
FILTER WHERE p.birthday <= 20050915
RETURN p.firstName
กฎการเข้ารหัสตัวเลข:
ตามลําดับลําดับความสําคัญ:
- นิพจน์การเปรียบเทียบที่เกี่ยวข้องกับอาร์กิวเมนต์ของชนิดตัวเลขโดยประมาณ coerce อาร์กิวเมนต์ทั้งหมดให้เป็นชนิดตัวเลขโดยประมาณ
- นิพจน์การเปรียบเทียบที่เกี่ยวข้องกับอาร์กิวเมนต์ของชนิดจํานวนเต็มที่มีเครื่องหมายและไม่มีเครื่องหมายแสดงถึงอาร์กิวเมนต์ทั้งหมดให้เป็นชนิดจํานวนเต็มที่มีเครื่องหมาย
นิพจน์เชิงตรรกะ
รวมเงื่อนไขด้วยตัวดําเนินการตรรกะ:
-
AND(เงื่อนไขทั้งสองเป็นจริง) -
OR(เงื่อนไขอย่างใดอย่างหนึ่งเป็นจริง) -
NOT(เงื่อนไขค่าลบล้าง)
ตัวอย่าง:
MATCH (p:Person)
FILTER WHERE p.birthday <= 20050915 AND p.firstName = 'John'
RETURN p.firstName || ' ' || p.lastName AS fullName
เพรดิเคตการมีอยู่ของคุณสมบัติ
หากต้องการตรวจสอบว่ามีคุณสมบัติอยู่หรือไม่ ให้ใช้:
p.locationIP IS NOT NULL
p.browserUsed IS NULL
Note
การพยายามเข้าถึงคุณสมบัติที่ไม่มีอยู่จริงที่รู้จักจะส่งผลให้เกิดข้อผิดพลาดทางไวยากรณ์
การเข้าถึงทรัพย์สินที่อาจไม่มีอยู่จริงจะประเมินเป็นnull
การพิจารณาว่าคุณสมบัติเป็นที่รู้จักหรืออาจไม่มีอยู่จริงจะทําตามประเภทของโหนดหรือเอดจ์ที่เข้าถึง
เพรดิเคตสมาชิกรายการ
ทดสอบถ้าค่าอยู่ในรายการ:
p.firstName IN ['Alice', 'Bob', 'Charlie']
p.gender NOT IN ['male', 'female']
เพรดิเคตรูปแบบสตริง
จับคู่สตริงโดยใช้การจับคู่รูปแบบ:
p.firstName CONTAINS 'John'
p.browserUsed STARTS WITH 'Chrome'
p.locationIP ENDS WITH '.1'
นิพจน์ทางคณิตศาสตร์
ใช้ตัวดําเนินการทางคณิตศาสตร์มาตรฐานที่มีค่าตัวเลข:
-
+(การเพิ่ม) -
-(การลบ) -
*(การคูณ) -
/(การหาร)
ตัวดําเนินการทางคณิตศาสตร์เป็นไปตามหลักทั่วไปทางคณิตศาสตร์
ก่อนหน้า:
โดยทั่วไปแล้ว ตัวดําเนินการจะเป็นไปตามกฎที่กําหนดลําดับความสําคัญของตัวดําเนินการ เช่น * ก่อน+ ใช้วงเล็บเพื่อควบคุมลําดับการประเมินตามความจําเป็น
ตัวอย่าง:
(p.birthday < 20050915 OR p.birthday > 19651231) AND p.gender = 'male'
กฎการเข้ารหัส:
ตามลําดับลําดับความสําคัญ:
- นิพจน์ทางคณิตศาสตร์ที่เกี่ยวข้องกับอาร์กิวเมนต์ของชนิดตัวเลขโดยประมาณจะส่งกลับผลลัพธ์ของชนิดตัวเลขโดยประมาณ
- นิพจน์ทางคณิตศาสตร์ที่เกี่ยวข้องกับอาร์กิวเมนต์ของชนิดจํานวนเต็มที่มีเครื่องหมายและไม่มีเครื่องหมายส่งกลับผลลัพธ์ของชนิดจํานวนเต็มที่มีเครื่องหมาย
ตัวอย่าง:
LET birth_year = p.birthday / 10000
RETURN birth_year
การเข้าถึงคุณสมบัติ
เข้าถึงคุณสมบัติโดยใช้สวดมนต์:
p.firstName
edge.creationDate
การเข้าถึงรายการ
เข้าถึงองค์ประกอบรายการโดยใช้การจัดทําดัชนีตามศูนย์:
interests[0] -- first element
interests[1] -- second element
ฟังก์ชันที่มีอยู่ภายใน
GQL สนับสนุนฟังก์ชันในตัวต่าง ๆ สําหรับการประมวลผลข้อมูลและการวิเคราะห์
ฟังก์ชันการรวม
ฟังก์ชันการรวมจะถูกใช้เพื่อประเมินนิพจน์ผ่านชุดของแถวและรับค่าผลลัพธ์สุดท้ายโดยการรวมค่าที่คํานวณสําหรับแต่ละแถว ฟังก์ชันการรวมต่อไปนี้ได้รับการสนับสนุนสําหรับกราฟใน Microsoft Fabric:
-
count(*)- นับจํานวนแถว -
sum(expression)- รวมค่าตัวเลข -
avg(expression)- ค่าตัวเลขเฉลี่ย -
min(expression)- ค้นหาค่าต่ําสุด -
max(expression)- ค้นหาค่าสูงสุด -
collect_list(expression)- รวบรวมค่าลงในรายการ
โดยทั่วไป ฟังก์ชันการรวมจะละเว้นค่า null และส่งกลับค่า null เสมอเมื่อไม่มีค่าป้อนเข้าของวัสดุ คุณสามารถใช้ coalesce เพื่อรับค่าเริ่มต้นอื่นได้: coalesce(sum(expr), 0) ข้อยกเว้นเดียวคือ count ฟังก์ชันการรวม ซึ่งนับค่าที่ไม่ใช่ null ที่ให้ไว้เสมอ โดยแสดงค่า 0 ถ้าไม่มีค่าใด ๆ ใช้ count(*) เพื่อรวมค่า null ในการนับจํานวนด้วย
ฟังก์ชันการรวมจะใช้ในสามวิธีที่แตกต่างกัน:
- สําหรับการคํานวณ (แนวตั้ง) รวมทั่วทั้งตาราง
- สําหรับการคํานวณ (แนวตั้ง) รวมผ่านตารางย่อยที่กําหนดโดยคีย์การจัดกลุ่ม
- สําหรับการคํานวณ (แนวนอน) รวมผ่านองค์ประกอบของรายการกลุ่ม
การรวมแนวตั้ง:
-- 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
ค่ารวมแนวนอน:
การรวมแนวนอนจะคํานวณผลรวมผ่านองค์ประกอบของตัวแปรรายการกลุ่มจากรูปแบบความยาวตัวแปร:
-- 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
การรวมแนวนอนจะมีความสําคัญมากกว่าการรวมแนวตั้งเสมอ
เมื่อต้องการแปลงรายการกลุ่มเป็นรายการปกติ ให้ใช้collect_list(edges)
Note
สําหรับความครอบคลุมของเทคนิคการรวมที่ครอบคลุม รวมถึงการผูกขอบความยาวตัวแปรและการรวมการรวมแนวนอน/แนวตั้ง โปรดดู เทคนิคการรวมขั้นสูง
ฟังก์ชันสตริง
-
char_length(string)- ส่งกลับความยาวสตริง -
upper(string)- ส่งกลับตัวแปรตัวพิมพ์ใหญ่ของสตริงที่ระบุ (US ASCII เท่านั้น) -
lower(string)- ส่งกลับตัวแปรตัวพิมพ์เล็กของสตริงที่ระบุ (US ASCII เท่านั้น) -
trim(string)- ลบช่องว่างนําหน้าและต่อท้ายออก -
string_join(list, separator)- รวมองค์ประกอบรายการด้วยตัวคั่น
ตัวอย่าง:
MATCH (p:Person)
WHERE char_length(p.firstName) > 5
RETURN upper(p.firstName) AS name_upper
ฟังก์ชันกราฟ
-
nodes(path)- ส่งกลับโหนดจากค่าเส้นทาง -
edges(path)- ส่งกลับขอบจากค่าเส้นทาง -
labels(node_or_edge)- ส่งกลับป้ายชื่อของโหนดหรือขอบเป็นรายการของสตริง
ตัวอย่าง:
MATCH p=(:Company)<-[:workAt]-(:Person)-[:knows]-{1,3}(:Person)-[:workAt]->(:Company)
RETURN nodes(p) AS chain_of_colleagues
ฟังก์ชันรายการ
-
size(list)- แสดงขนาดของค่ารายการ -
trim(list,n)- ตัดแต่งรายการให้มีขนาดใหญ่ที่สุดn
ตัวอย่าง:
MATCH (p:Person)-[:hasInterest]->(t:Tag)
WHERE size(collect_list(t)) > 3
RETURN p.firstName, collect_list(t.name) AS interests
ฟังก์ชันชั่วคราว
-
zoned_datetime()- ส่งกลับวันที่เวลาโซนปัจจุบัน -
zoned_datetime("2025-09-12T10:10:52Z")- ส่งกลับวันที่เวลาที่อยู่ในโซนที่กําหนดโดยอาร์กิวเมนต์ในรูปแบบ ISO 8601
ตัวอย่าง:
RETURN zoned_datetime() AS now
ฟังก์ชันทั่วไป
-
coalesce(value1, value2, ...)- ส่งกลับค่าแรกที่ไม่ใช่ค่า null
ตัวอย่าง:
MATCH (p:Person)
RETURN coalesce(p.firstName, 'Unknown') AS display_name