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

Nhận các giá trị từ trường kiểu XML bằng cách sử dụng trong máy chủ SQL

Hãy thử điều này:

DECLARE @test TABLE(ID INT, XmlCol XML)

INSERT INTO @test VALUES(1, '<doc>
   <quote>
      <code>AA</code>
   </quote>
   <quote>
      <code>BB</code>
   </quote>
   <quote>
      <code>CC</code>
   </quote>
</doc>')

INSERT INTO @test VALUES(2, '<doc>
   <quote>
      <code>BB</code>
   </quote>
   <quote>
      <code>AA</code>
   </quote>
   <quote>
      <code>CC</code>
   </quote>
</doc>')

SELECT
    ID,
    X.Doc.value('(quote/code)[1]', 'varchar(20)') AS 'Code1',
    X.Doc.value('(quote/code)[2]', 'varchar(20)') AS 'Code2',
    X.Doc.value('(quote/code)[3]', 'varchar(20)') AS 'Code3'
FROM @test
CROSS APPLY xmlcol.nodes('doc') AS X(Doc)

Cung cấp cho bạn kết quả đầu ra là:

ID  Code1   Code2   Code3
1   AA  BB  CC
2   BB  AA  CC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giá trị hiệu suất của COMB guids

  2. Entity Framework 5 và Amazon RDS - Nhà cung cấp cơ bản không thành công khi Mở.

  3. Chuyển đổi một ngày thành một múi giờ khác trong SQL Server

  4. cách sao chép 1000 bản ghi hàng đầu từ 7000 bản ghi trong bảng hiện có sang bảng mới khác

  5. Truyền ký hiệu khoa học (từ varchar -> số) trong một chế độ xem