DB2 V10.1 for Linux, UNIX, and Windows

用于构造序列的表达式

可通过使用逗号运算符或范围表达式来构造序列。

逗号运算符

要使用逗号运算符构造序列,请指定用逗号隔开的两个或更多操作数(表达式)。对序列表达式求值时,逗号运算符会对每个操作数求值,并将生成的序列并置以生成单个结果序列。例如,以下表达式将生成包含 5 个整数的序列:
(15, 1, 3, 5, 7)

序列可包含重复的原子值和节点。但是,序列决不能是另一个序列中的一项。如果新序列是通过并置两个或更多输入序列创建的,那么新序列将包含输入序列中的所有项,并且序列长度是输入序列长度的总和。

下列表达式使用逗号运算符来构造序列:
  • 此表达式将长度分别为 1、2、0 和 2 的 4 个序列合并成长度为 5 的单个序列。此表达式将生成序列 10, 1, 2, 3, 4。
    (10, (1, 2), (), (3, 4))
  • 此表达式将生成一个序列,包含所有充当上下文节点子代的 salary 元素(后跟充当上下文节点子代的所有 bonus 元素)。
    (salary, bonus)
  • 假定变量 $price 绑定至值 10.50,那么此表达式将生成序列 10.50, 10.50。
    ($price, $price)

范围表达式

范围表达式会构造连续整数序列。范围表达式由通过 to 运算符隔开的两个操作数(表达式)组成。每个操作数的值必须可转换为类型为 xs:integer 的值。如果任一操作数为空序列,或者第一个操作数派生的整数大于第二个操作数派生的整数,那么范围表达式将生成空序列。否则会生成这样一个序列,该序列包含操作数派生的两个整数及其之间每个整数,这些整数按升序排列。例如,以下范围表达式求值为序列 1, 2, 3, 4:
(1 to 4)

以下示例使用范围表达式来构造序列: