|
|
От: |
bnk
|
http://unmanagedvisio.com/ |
| Дата: | 02.04.23 11:48 | ||
| Оценка: | 76 (1) | ||
DECLARE @xml XML = N'<root>
<sub_root>
<node>
<val>1</val>
<date>31.07.2022</date>
</node>
<node>
<val>2</val>
<date>20.08.2022</date>
</node>
</sub_root>
</root>';
WITH cte AS (
SELECT
n.value('(val/text())[1]', 'int') AS val,
CONVERT(date, n.value('(date/text())[1]', 'varchar(10)'), 104) AS date
FROM @xml.nodes('/root/sub_root/node') AS t(n)
)
SELECT val, date
FROM cte
WHERE date = (SELECT MAX(date) FROM cte)Здесь мы используем переменную @xml, которая хранит ваш XML-документ.
Затем мы используем CTE для извлечения значений из XML-документа,
преобразуя дату из русского/немецкого формата (день.месяц.год) с использованием кода 104.
Наконец, мы выбираем ноду с максимальной датой из CTE