Witam, mam problem z poprawnym parsowaniem atrybutów w xmlu. Jest on mianowicie taki :
<p id="96386" rid="1" i="Szymon" n="Tasz">Szymon Tasz</p>
<p id="96387" rid="2" i="Agnieszka" n="Przybylska">Agnieszka Przybylska</p>
<p id="96409" rid="5" i="Andrzej" n="Peszek">Andrzej Peszek</p>
W select mam jak na razie tak
SELECT
a.isbn,
a.tytul,
cba.core.xml_to_string((
SELECT SUBSTRING(x.value('.[1]', 'VARCHAR(1000)'), 1, CHARINDEX(' ', x.value('.[1]', 'VARCHAR(1000)')) - 1) +' '+ SUBSTRING(x.value('.[1]', 'VARCHAR(1000)'), CHARINDEX(' ', x.value('.[1]', 'VARCHAR(1000)')) + 1, LEN(x.value('.[1]', 'VARCHAR(1000)')))
FROM am.osoby_xml.nodes('p') AS tx(x) --- chyba tutaj musiałby znaleźć się where
FOR XML PATH('s'), TYPE), 's', DEFAULT) AS autorzy,
a.ilosc_stron,
ad.cena_det_brutto,
a.isbn_wersji_papierowej,
Data_wydania = (CAST(a.rok_wydania as VARCHAR(50)) + '-' + CASE WHEN LEN(a.miesiac_wydania) = 1 THEN '0'+ cast(a.miesiac_wydania as VARCHAR(50)) ELSE cast(a.miesiac_wydania as VARCHAR(50))END),
a.opis,
w.nazwa,
a.indeks
z autorów chciałbym jeszcze wyfiltrować tylko tych, którzy mają atrybut rid ='1'