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

Truy vấn dữ liệu từ một cột XML trong SQL Server

.query sẽ luôn trả về kiểu dữ liệu XML.

Để truy vấn một giá trị, bạn nên sử dụng ".value" và chỉ định kiểu dữ liệu làm tham số thứ hai.

Sử dụng cái này thay thế:

declare @xmlobj as xml = '<SimpleUserData xmlns="http://schemas.datacontract.org/2004/07/MyProject.CustomFx.Web" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" z:Id="1" z:Type="MyProject.CustomFx.Web.SimpleUserData" z:Assembly="MyProject.CustomFx.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
      <BatchDescription z:Id="2">I want this value</BatchDescription>
      <BatchID>9c437c08-0f28-4c77-9a50-49a7a4e8930a</BatchID>
      <BatchTemplateID>And this value too</BatchTemplateID>
    </SimpleUserData>';

WITH XMLNAMESPACES('http://schemas.datacontract.org/2004/07/MyProject.CustomFx.Web' as x)
select
  @xmlobj.value('(/x:SimpleUserData[1]/x:BatchDescription[1])','nvarchar(max)') as value1
 ,@xmlobj.value('(/x:SimpleUserData[1]/x:BatchTemplateID[1])','nvarchar(max)') as value2;



  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 để chèn các giá trị ngẫu nhiên vào bảng SQL Server?

  2. Tách Ngày thành 2 Cột (Ngày + Giờ) trong SQL

  3. SaveChanges () không lưu dữ liệu

  4. @@ ROWCOUNT - Nhận số lượng hàng bị ảnh hưởng bởi câu lệnh cuối cùng trong SQL Server

  5. Tìm kiếm trình xem tệp Nhật ký giao dịch SQL