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

chọn từng nút xml bằng SQL

Bạn nên sử dụng Phương pháp query () nếu bạn muốn lấy một phần XML của mình.

declare @XML xml

set @XML = 
'
<root>
  <row1>
    <value>1</value>
  </row1>
  <row2>
    <value>2</value>
  </row2>
</root>
'

select @XML.query('/root/row2')

Kết quả:

<row2>
  <value>2</value>
</row2>

Nếu bạn muốn giá trị từ một nút cụ thể, bạn nên sử dụng phương pháp value () .

select @XML.value('(/root/row2/value)[1]', 'int')

Kết quả:

2

Cập nhật:

Nếu bạn muốn chia nhỏ XML của mình thành nhiều hàng, bạn sử dụng phương pháp node () .

Để nhận các giá trị:

declare @XML xml

set @XML = 
'
<root>
  <row>
    <value>1</value>
  </row>
  <row>
    <value>2</value>
  </row>
</root>
'

select T.N.value('value[1]', 'int')
from @XML.nodes('/root/row') as T(N)

Kết quả:

(No column name)
1
2

Để lấy toàn bộ XML:

select T.N.query('.')
from @XML.nodes('/root/row') as T(N)

Kết quả:

(No column name)
<row><value>1</value></row>
<row><value>2</value></row>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. thay đổi ràng buộc DEFAULT trên SQL cột

  2. Trong SQL Server, làm cách nào để tạo ID khóa chính tự động tăng dần bao gồm năm, một ký tự đặc biệt và một chuỗi số tuần tự?

  3. Bảng tạm thời trong SQL Server 2005 không tự động bị loại bỏ

  4. Câu lệnh SQL Server RAISERROR với các ví dụ đơn giản

  5. Bế tắc trong cơ sở dữ liệu là gì?