What I mean is that if you want to support N sort keys, each ascending or descending, you'll need to enumerate 2N conditionals. With string concatenation and xdmp:value you can support any number, with much less code. And then if you want to support multiple dynamic sort keys at the same time, things get ugly fast.
-- Mike On 27 Mar 2013, at 13:39 , Geert Josten <[email protected]> wrote: > Can you elaborate on 'static'? This seems to work just fine: > > for $x in (1,3,2,5) > order by if( fn:true() ) then $x else () ascending > return $x > > Kind regards, > Geert > >> -----Oorspronkelijk bericht----- >> Van: [email protected] [mailto:general- >> [email protected]] Namens Michael Blakeley >> Verzonden: woensdag 27 maart 2013 21:17 >> Aan: MarkLogic Developer Discussion >> Onderwerp: Re: [MarkLogic Dev General] How to program the order by >> clause in FLWOR? >> >> The order by clause has to be static. You can play some games with > simple >> cases, but for complex cases you pretty much have to build a string and > call >> xdmp:value on it. The search:search function and its resolve cousins do > this >> for you, or you can build it yourself. >> >> -- Mike >> >> On 27 Mar 2013, at 12:19 , "Tim" <[email protected]> wrote: >> >>> Hi Folks, >>> >>> Is there a simple way to program the order by clause in FLWOR to make > it >> optional based on parameters? I have a web page that I want to sort as >> indicated by the user. >>> >>> For example, this code illustrates what I'd like to do but doesn't > work: >>> >>> let $sort-option := "a descending" >>> return >>> for $row in $rows >>> let $a := $row/a/text() >>> let $b := $row/b/text() >>> order by {if ($sort-option eq "a ascending") then $a ascending else >> $default} >>> return <tr><td>{$a}</td><td>{$b}</td></tr> >>> >>> Thanks! >>> >>> Tim Meagher >>> >>> _______________________________________________ >>> General mailing list >>> [email protected] >>> http://developer.marklogic.com/mailman/listinfo/general >> >> _______________________________________________ >> General mailing list >> [email protected] >> http://developer.marklogic.com/mailman/listinfo/general > _______________________________________________ > General mailing list > [email protected] > http://developer.marklogic.com/mailman/listinfo/general > _______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
