Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server 2008 XPath

Bạn có thể sử dụng .exist() phương pháp - một cái gì đó như thế này:

SELECT 
(list of columns) 
FROM
dbo.YourTable
WHERE
YourXmlColumn.exist('//Value[text()="5052095050830"]') = 1

Điều này kiểm tra giá trị cụ thể mà bạn đã cung cấp. Bạn càng có thể xác định chính xác XPath nơi giá trị đó được mong đợi sẽ được tìm thấy, thì hiệu suất của bạn càng tốt.

YourXmlColumn.exist('//Value[text()="5052095050830"]') = 1

khá tệ - nó xem xét từng <Value> nút ở bất kỳ đâu trong XML để tìm giá trị đó.

Một cái gì đó như thế này:

YourXmlColumn.exist('/Attributes/ProductVariantAttribute/ProductVariantAttributeValue/Value[text()="5052095050830"]') = 1

sẽ tập trung hơn nhiều và do đó tốt hơn nhiều cho hiệu suất - nhưng nó sẽ chỉ những nút cụ thể được xác định bởi chính câu lệnh XPath đó



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tôi có được ngày tối đa (mỗi khóa chính) và nhận được sự khác biệt của nó với ngày từ bảng khác?

  2. 3 cách trả về hàng chứa ký tự chữ và số trong SQL Server

  3. Cấp quyền chọn trên dạng xem không phải bảng cơ sở khi bảng cơ sở nằm trong một cơ sở dữ liệu khác

  4. pyodbc không thể kết nối với cơ sở dữ liệu

  5. Cách bỏ qua một tham số trong thủ tục được lưu trữ nếu giá trị của nó là null