Mendapatkan Nilai Atribut daripada Jenis Data XML dalam SQL
Apabila bekerja dengan data XML dalam SQL, selalunya perlu mengekstrak nilai atribut tertentu . Sebagai contoh, kita mungkin perlu mendapatkan nilai atribut "bahasa" daripada XML berikut:
<email> <account language="en" ... /> </email>
Untuk mencapai ini, kita boleh memanfaatkan ungkapan XQuery. Berikut ialah versi diubah suai bagi pertanyaan SQL anda menggunakan XQuery:
SELECT @xml.value('(/email/account/@language)[1]', 'nvarchar(max)') FROM Mail
Dalam pertanyaan ini, kami menggunakan fungsi .value() untuk menanyakan dokumen XML yang diwakili oleh pembolehubah "@xml". Ungkapan XQuery "/email/account/@language" menentukan laluan ke atribut yang diingini dan "[1]" memastikan kami mendapatkan semula nilai atribut padanan pertama (dan sahaja).
Sebagai alternatif , anda boleh menggunakan ungkapan jadual berikut untuk mendapatkan semula nilai atribut:
declare @t table (m xml) insert @t values ('<email><account language="en" /></email>'), ('<email><account language="fr" /></email>') select m.value('(/email/account/@language)[1]', 'nvarchar(max)') from @t
Pendekatan ini menyediakan penyelesaian yang lebih ringkas dan berskala untuk mendapatkan semula nilai atribut daripada berbilang dokumen XML dalam jadual. Output pertanyaan ialah:
en fr
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nilai Atribut daripada Data XML dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!