sql >> Databáze >  >> RDS >> Sqlserver

Jak číst xml v t-sql?

Za předpokladu, že máte tento XML v proměnné T-SQL - pak byste mohli použít tento fragment kódu:

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)

To mi dává výstup:

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

Přístup je následující:

  • stáhněte si seznam <item> uzly pod <root> jako váš první „seznam uzlů XML“ s prvním .nodes() Metoda XQuery a extrahujte hodnotu <key> Prvek XML v tomto fragmentu XML do Key1

  • uchopte „vnořený“ seznam uzlů XML uvnitř tohoto fragmentu XML pomocí value/params/item XPath, abyste získali podřízené řádky - a extrahovali hodnoty z <key> a <value> z těchto vnořených podřízených fragmentů XML do Key2 a ItemValue




  1. SQLite - Vytvořte tabulku

  2. Připojte se k MySQL v MAMP

  3. Nalezeno:bit, očekáváno:boolean po upgradu Hibernate 4

  4. Váš dokonalý průvodce SQL Join:INNER JOIN – Část 1