Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да чета xml в t-sql?

Ако приемем, че имате този XML в T-SQL променлива - тогава можете да използвате този кодов фрагмент:

DECLARE @input XML = '...(your XML here).....'

SELECT
    Key1 = Item.value('(key)[1]', 'int'),
    Key2 = Item2.value('(key)[1]', 'int'),
    ItemValue = Item2.value('(value)[1]', 'varchar(50)')
FROM 
    @input.nodes('/root/item') AS T(Item)
CROSS APPLY
    item.nodes('value/params/item') AS T2(Item2)

Това ми дава резултат от:

Key1  Key2  ItemValue
 1     1     value
 1     2     value2
 1     3     value3
 2     4     value4
 2     5     value5
 2     6     value6  

Подходът е следният:

  • вземете списъка с възли под като вашия първи „списък с XML възли“ с първия .nodes() XQuery метод и извлечете стойността на XML елемент в този XML фрагмент в Key1

  • вземете „вложения“ списък с XML възли вътре в този XML фрагмент, като използвате value/params/item XPath, за да получите дъщерните редове - и да извлечете стойностите от и <стойност> от тези вложени дъщерни XML фрагменти в Key2 и ItemValue




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да промените периода на задържане на прихващане на промени (CDC) в SQL Server - урок за SQL Server

  2. Каскадно копиране на ред с всички дъщерни редове и техните дъщерни редове и т.н

  3. Свържете PHP към MSSQL чрез PDO ODBC

  4. Промяна на колона в SQL Server

  5. SSRS връща различни резултати от съхранената процедура