Converting values without a lookup table : if « XQuery « XML






Converting values without a lookup table


File: Data.xml

<order>
  <car model="A">
    <id>0001</id>
    <name language="en">name 1</name>
  </car>
  <car model="B">
    <id>0002</id>
    <name language="en">name 2</name>
  </car>
  <car model="B">
    <id>0003</id>
    <name language="en">name 3</name>
  </car>
</order>

File: Query.xquery

let $cat := doc("Data.xml")/order
for $model in distinct-values($cat/car/@model)
return  <li>Department: {if ($model = "B")
                        then "Accessories"
                        else if ($model = "C")
                             then "Menswear"
                             else if ($model = "A")
                                  then "Womens"
                                  else ()
               }  ({$model})</li>

Output:

<?xml version="1.0" encoding="UTF-8"?>
<li>Department: Womens  (A)</li>
<li>Department: Accessories  (B)</li>

 








Related examples in the same category

1.Conditional expression
2.Conditional expression returning multiple expressions
3.Nested conditional expressions
4.If statement in return clause
5.If then else stateCt