Bạn sẽ có thể làm điều này khá dễ dàng:
SELECT *
FROM WebPageContent
WHERE data.value('(/PageContent/Text)[1]', 'varchar(100)') LIKE 'XYZ%'
Các .value
phương pháp mang đến cho bạn giá trị thực tế, và bạn có thể xác định rằng để được trả lại như một VARCHAR (), sau đó bạn có thể kiểm tra với một tuyên bố tương tự.
Xin lưu ý bạn, điều này sẽ không nhanh đến mức khủng khiếp. Vì vậy, nếu bạn có một số trường nhất định trong XML của mình mà bạn cần phải kiểm tra nhiều, bạn có thể:
- tạo một hàm được lưu trữ để lấy XML và trả về giá trị bạn đang tìm kiếm dưới dạng VARCHAR ()
- xác định một trường được tính toán mới trên bảng của bạn, trường này gọi hàm này và đặt nó thành cột ĐƯỢC LẬP KIỆN
Với điều này, về cơ bản bạn sẽ "trích xuất" một phần nhất định của XML vào một trường được tính toán, làm cho nó tồn tại và sau đó bạn có thể tìm kiếm rất hiệu quả trên đó (heck: bạn thậm chí có thể INDEX trường đó!).
Marc