Anda seharusnya dapat melakukannya dengan mudah:
SELECT *
FROM WebPageContent
WHERE data.value('(/PageContent/Text)[1]', 'varchar(100)') LIKE 'XYZ%'
The .value
Metode memberi Anda nilai aktual, dan Anda dapat menentukan bahwa harus dikembalikan sebagai VARCHAR (), yang kemudian dapat memeriksa dengan laporan SEPERTI.
Pikiran Anda, ini tidak akan terlalu cepat. Jadi jika Anda memiliki bidang tertentu dalam XML yang perlu banyak diperiksa, Anda dapat:
- buat fungsi tersimpan yang mendapatkan XML dan mengembalikan nilai yang Anda cari sebagai VARCHAR ()
- tentukan kolom komputasi baru di tabel Anda yang memanggil fungsi ini, dan menjadikannya kolom PERSISTED
Dengan ini, pada dasarnya Anda akan "mengekstrak" bagian tertentu dari XML ke dalam bidang yang dihitung, membuatnya bertahan, dan kemudian Anda dapat mencarinya dengan sangat efisien (heck: Anda bahkan dapat mengindeks bidang itu!).
Marc