[xquery-talk] if statement inside FLWOR-expressions
Piewald, Georg
georg.piewald at siemens.com
Fri Aug 22 12:14:53 PDT 2008
(Sorry Jens, by mistake I replied to you personally instead of the list
- I'm forced to use MS Outlook here, which I'm not used to...)
Jens Teubner wrote:
>
> On Fri, Aug 22, 2008 at 09:22:30AM +0200, Piewald, Georg wrote:
>
> > if ($item < 3) then
> > let $var := 'abc'
> > else
> > let $var := 'def'
> > return
> > <p>Text {$var}</p>
>
> XQuery is a functional, expression-oriented language. What you want to
> write is
>
> let $var := if ($item < 3) then 'abc' else 'def'
> return <p>Text {$var}</p>
>
> Observe how the `if ...' does not imply a certain control
> flow. Rather,
> the entire clause is an expression that evaluates to either 'abc' or
> 'def'.
Thank you, that clearifies a lot. But now I want to go a step further.
In my original problem I don't have only one variable $var to set in
each of the if-branches, but several ones. So my original (and of course
wrong) approach was
if ($item < 3) then
let $var1 := 'abc'
let $var2 := ...
...
else
let $var1 := 'def'
let $var2 := ...
...
return
<p>Text {$var1} text {$var2} </p>
I don't see how to map this to the correct syntax in a straightforward
way.
Thanks again, Georg
More information about the talk
mailing list