Я новичок в программировании XML на SQL Server.Вероятно, это будет простой вопрос для вас, ребята!
У меня есть таблица базы данных с именем TestXML в SQL Server 2005. В ней есть один столбец testXML с типом данных xml.Данные в этом столбце имеют следующий формат:
<TEST name="testName" status="Completed">
<Status CompletedOn="2011-11-01T01:12:13Z"/>
<Bar number="1" status="Pending">
<Control RequestDate="2011-11-30T01:12:13Z"/>
</Bar>
<Bar number="2" status="Pending">
<Control RequestDate="2011-11-30T01:11:13Z"/>
</Bar>
<Bar number="3" status="Pending">
<Control RequestDate="2011-11-30T01:13:13Z"/>
</Bar>
</TEST>
Я хочу написать запрос, который будет возвращать максимальное значение RequestDate из Bar / Control / @ RequestDate, поэтому в приведенном выше примере мне нужен мой запросвернуться - 2011-11-30T01: 13: 13Z
До сих пор я пытался:
SELECT testXML.query('max(//@RequestDate)') from TestXml
WHERE testXML.value('(/TEST/@status)[1]', 'varchar(20)') = 'Completed'
Это возвращает пустое значение .... и если я пытаюсь с testXML.query('max(//string(@RequestDate))')
Я получаю следующую ошибку:
XQuery [TestXml.testXML.query ()]: Синтаксис XQuery '/ function ()' не поддерживается.
Пожалуйста, могкто-нибудь, помогите мне написать этот запрос.Большое спасибо заранее.