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

Nhận một chuỗi được phân tách từ XML với SQL Server 2005 XQuery

Còn về điều này thì sao - điều này sẽ hoạt động đối với bất kỳ số lượng <AAA> nào các nút trong một biến XML:

DECLARE @Input XML = '<AAA>
  <Name>Name_A</Name>
  <Value>Val_A</Value>
</AAA>
<AAA>
  <Name>Name_B</Name>
  <Value>Val_B</Value>
</AAA>
<AAA>
  <Name>Name_C</Name>
  <Value>Val_C</Value>
</AAA>'

SELECT
    STUFF(
    (SELECT 
        ',' + AAA.value('(Value)[1]', 'varchar(20)')
     FROM
        @Input.nodes('/AAA') AS Node(AAA)
     FOR XML PATH('')
    ), 1, 1, '')

Đầu ra là:

Val_A,Val_B,Val_C


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không kết thúc sử dụng đóng một kết nối SQL đang mở

  2. Không thể tạo hàng có kích thước 8937 lớn hơn mức tối đa cho phép là 8060

  3. Cách sửa đổi nhiều nút bằng SQL XQuery trong MS SQL 2005

  4. Nhận hàng trước và hàng tiếp theo từ các hàng đã chọn với điều kiện (WHERE)

  5. Cách sử dụng API SSIS để đọc một gói và xác định chuỗi nhiệm vụ từ mã (PrecedenceConstraints)