[xquery-talk] Xquery : Sort and get only the first record

sudheshna iyer sudheshnaiyer at yahoo.com
Sun Nov 1 11:51:18 PST 2015

I have an xml which has multiple jobs elements. I want to sort the jobs and want to output only the latest job. Note that <EndDate> can be empty indicating that it is the current job.
Basically I want to order by jobs/job/EndDate in descending fashion and select only the first record..
How do I do that using xquery?
Input request: <?xml version="1.0" encoding="UTF-8"?><Request>   <SessionInfo>      <uid>qq</uid>      <pwd>qq</pwd>   </SessionInfo>   <Param>      <CustomerInfo>         <Contact>            <Number>123</Number>            <Name>aaa bbb</Name>            <Jobs>               <job>                  <Name>Analyst</Name>                  <Id>1</Id>                  <StartDate>01-01-2015</StartDate>                  <EndDate>08-30-2015</EndDate>               </job>               <job>                  <Name>Programmer</Name>                  <Id>2</Id>                  <StartDate>08-31-2015</StartDate>                  <EndDate />               </job>            </Jobs>         </Contact>      </CustomerInfo>   </Param></Request>
Expected output:
<?xml version="1.0" encoding="UTF-8"?><Request>   <SessionInfo>      <uid>qq</uid>      <pwd>qq</pwd>   </SessionInfo>   <Param>      <CustomerInfo>         <Contact>            <Number>123</Number>            <Name>aaa bbb</Name>            <Jobs>               <job>                  <Name>Programmer</Name>                  <Id>2</Id>                  <StartDate>08-31-2015</StartDate>                  <EndDate/>               </job>            </Jobs>         </Contact>      </CustomerInfo>   </Param></Request>
Your help is greatly appreciated.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://x-query.com/pipermail/talk/attachments/20151101/251261cd/attachment.html>

More information about the talk mailing list