Updating counter in XQuery

后端 未结 7 1934
孤街浪徒
孤街浪徒 2020-12-10 13:39

I want to create a counter in xquery. My initial attempt looked like the following:

let $count := 0
for $prod in $         


        
7条回答
  •  既然无缘
    2020-12-10 14:12

    Try using 'at':

    for $d at $p in $collection
    return 
    element counter { $p }
    

    This will give you the position of each '$d'. If you want to use this together with the order by clause, this won't work since the position is based on the initial order, not on the sort result. To overcome this, just save the sorted result of the FLWOR expression in a variable, and use the at clause in a second FLWOR that just iterates over the first, sorted result.

    let $sortResult := for $item in $collection
                       order by $item/id
                       return $item
    
    for $sortItem at $position in $sortResult
    return  ... 
    

提交回复
热议问题