条件表达式
条件表达式使用关键字 if、then 和 else 以根据测试表达式的值是 true 还是 false 来对两个表达式的其中一个求值。
语法
- 购买
- 直接放在测试表达式之前的关键字。
- TestExpression
- 确定对哪部分条件表达式求值的 XQuery 表达式。
- then
- 如果 TestExpression 的有效布尔值为 true,那么会对跟在此关键字之后的表达式求值。 如果测试表达式的有效布尔值为 false,那么不会对表达式求值或检查是否有错。
- else
- 如果 TestExpression 的有效布尔值为 false,那么会对跟在此关键字之后的表达式求值。 如果测试表达式的有效布尔值为 true,那么不会对表达式求值或检查是否有错。
- 表达式
- XQuery 表达式。 如果表达式包含顶级逗号运算符,那么必须用圆括号将表达式括起来。
示例
在以下示例中,查询会构造包含属性
basic
的 product
元素的列表。 basic
属性的值是根据 price
元素的值是否小于 10 这一条件指定的:for $prod in db2-fn:xmlcolumn('PRODUCT.DESCRIPTION')/product/description
return (
if (xs:decimal($prod/price) < 10)
then <product basic = "true">{fn:data($prod/name)}</product>
else <product basic = "false">{fn:data($prod/name)}</product>)
查询将返回以下结果:<product basic="true">Snow Shovel, Basic 22"</product>
<product basic="false">Snow Shovel, Deluxe 24"</product>
<product basic="false">Snow Shovel, Super Deluxe 26"</product>
<product basic="true">Ice Scraper, Windshield 4" Wide</product>
在此示例中,测试表达式根据 price
元素的值构造 xs:decimal 值。 xs:decimal
函数用于强制进行十进制比较。