Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Semua contoh dalam Memahami Ekspresi Jalur di XQuery menggunakan sintaksis yang tidak disingkat untuk ekspresi jalur. Sintaksis yang tidak disingkat untuk langkah sumbu dalam ekspresi jalur mencakup nama sumbu dan pengujian simpul, dipisahkan oleh titik dua, dan diikuti oleh kualifikasi langkah nol atau lebih.
Contohnya:
child::ProductDescription[attribute::ProductModelID=19]
XQuery mendukung singkatan berikut untuk digunakan dalam ekspresi jalur:
Sumbu anak adalah sumbu default. Oleh karena itu, anak:: sumbu dapat dihilangkan dari langkah dalam ekspresi. Misalnya,
/child::ProductDescription/child::Summary
dapat ditulis sebagai/ProductDescription/Summary
.Sumbu atribut dapat disingkat sebagai @. Misalnya,
/child::ProductDescription[attribute::ProductModelID=10]
dapat ditulis sebagai/ProductDescription[@ProductModelID=10]
./descendant-or-self::node()/ dapat disingkat sebagai //. Misalnya,
/descendant-or-self::node()/child::act:telephoneNumber
dapat ditulis sebagai//act:telephoneNumber
.Kueri sebelumnya mengambil semua nomor telepon yang disimpan di kolom AdditionalContactInfo di tabel Kontak. Skema untuk AdditionalContactInfo didefinisikan dengan cara agar <elemen telephoneNumber> dapat muncul di mana saja dalam dokumen. Oleh karena itu, untuk mengambil semua nomor telepon, Anda harus mencari setiap simpul dalam dokumen. Pencarian dimulai di akar dokumen dan berlanjut melalui semua simpul turunan.
Kueri berikut mengambil semua nomor telepon untuk kontak pelanggan tertentu:
SELECT AdditionalContactInfo.query(' declare namespace act="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes"; declare namespace crm="https://schemas.adventure-works.com/Contact/Record"; declare namespace ci="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; /descendant-or-self::node()/child::act:telephoneNumber ') as result FROM Person.Contact WHERE ContactID=1
Jika Anda mengganti ekspresi jalur dengan sintaks yang disingkat,
//act:telephoneNumber
, Anda menerima hasil yang sama.Self ::node() dalam langkah dapat disingkat menjadi satu titik (.). Namun, titik tidak setara atau dapat dipertukarkan dengan self::node().
Misalnya, dalam kueri berikut, penggunaan titik mewakili nilai dan bukan simpul:
("abc", "cde")[. > "b"]
Induk ::node() dalam langkah dapat disingkat ke titik ganda (..).