Operator XQuery Terhadap Tipe Data xml
Berlaku untuk:SQL Server
XQuery mendukung operator berikut:
Operator numerik (+, -, *, div, mod)
Operator untuk perbandingan nilai (eq, ne, lt, gt, le, ge)
Operator untuk perbandingan umum ( =, !=, <, , <>=, >= )
Untuk informasi selengkapnya tentang operator ini, lihat Ekspresi Perbandingan (XQuery)
Contoh
J. Menggunakan operator umum
Kueri mengilustrasikan penggunaan operator umum yang berlaku untuk urutan, dan juga untuk membandingkan urutan. Kueri mengambil urutan nomor telepon untuk setiap pelanggan dari kolom AdditionalContactInfo dari tabel Kontak . Urutan ini kemudian dibandingkan dengan urutan dua nomor telepon ("111-111-1111", "222-2222").
Kueri menggunakan operator perbandingan = . Setiap simpul dalam urutan di sisi = kanan operator dibandingkan dengan setiap simpul dalam urutan di sisi kiri. Jika simpul cocok, perbandingan simpul adalah TRUE. Kemudian dikonversi ke int dan dibandingkan dengan 1, dan kueri mengembalikan ID pelanggan.
WITH XMLNAMESPACES (
'https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo' AS ACI,
'https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes' AS ACT)
SELECT ContactID
FROM Person.Contact
WHERE AdditionalContactInfo.value('
//ACI:AdditionalContactInfo//ACT:telephoneNumber/ACT:number =
("111-111-1111", "222-2222")',
'bit')= cast(1 as bit)
Ada cara lain untuk mengamati cara kerja kueri sebelumnya: Setiap nilai nomor telepon yang diambil dari kolom AdditionalContactInfo dibandingkan dengan set dua nomor telepon. Jika nilai dalam set, pelanggan tersebut dikembalikan dalam hasilnya.
B. Menggunakan operator numerik
Operator + dalam kueri ini adalah operator nilai, karena berlaku untuk satu item. Misalnya, nilai 1 ditambahkan ke ukuran banyak yang dikembalikan oleh kueri:
SELECT ProductModelID, Instructions.query('
declare namespace
AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
for $i in (/AWMI:root/AWMI:Location)[1]
return
<Location LocationID="{ ($i/@LocationID) }"
LotSize = "{ number($i/@LotSize) }"
LotSize2 = "{ number($i/@LotSize) + 1 }"
LotSize3 = "{ number($i/@LotSize) + 2 }" >
</Location>
') as Result
FROM Production.ProductModel
where ProductModelID=7
C. Menggunakan operator nilai
Kueri berikut mengambil <Picture
> elemen untuk model produk di mana ukuran gambar "kecil":
SELECT CatalogDescription.query('
declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
for $P in /PD:ProductDescription/PD:Picture[PD:Size eq "small"]
return
$P
') as Result
FROM Production.ProductModel
where ProductModelID=19
Karena kedua operand ke operator eq adalah nilai atomik, operator nilai digunakan dalam kueri. Anda dapat menulis kueri yang sama dengan menggunakan operator perbandingan umum ( = ).
Lihat Juga
Fungsi XQuery terhadap Tipe Data xml
XML Data (SQL Server)
Referensi Bahasa XQuery (SQL Server)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk