ARRAY_DELETE 标量函数

ARRAY_DELETE 函数从数组中删除元素。

Read syntax diagramSkip visual syntax diagram ARRAY_DELETE ( array-expression ,array-index1,array-index2 )
该模式是 SYSIBM。
array-expression
数组类型的 SQL 变量, SQL 参数或全局变量,或者数组类型的参数标记的 CAST 规范。
array-index1
结果是可以分配给数组下标的数据类型的值的表达式。 如果 array-expression 是普通数组,那么 array-index1 必须是空值 (SQLTATE 42815)。
array-index2
结果是可以分配给数组下标的数据类型的值的表达式。 如果 array-expression 是普通数组,那么 array-index2 必须为空值。 如果指定了 array-index2 且为非空值,那么 array-index1 必须是小于 array-index2 值的非空值 (SQLSTATE 42815)。
该函数的结果与 array-expression 的数据类型相同。 结果数组是 array-expression 的副本,具有以下修改:
  • 如果未指定可选参数,或者它们是空值,那么将删除 array-expression 的所有元素,结果数组值的基数为 0。
  • 如果仅使用非空值指定 array-index1,那么将删除索引值 array-index1 处的数组元素。
  • 如果还使用非空值指定了 array-index2,那么将删除从索引值 array-index1array-index2(包含在内)的元素。

结果可以为空;如果 array-expression 为空,那么结果为空值。

示例

  1. 从数组类型为 PHONENUMBERS 的普通数组变量 RECENT_CALLS 中删除所有元素。
    SETRECENT_CALLS = ARRAY_DELETE(RECENT_CALLS)
  2. 供应商已停用其部分产品。 将数组类型为 PRODUCTS 的关联数组变量 FLOOR_TILES 中的元素从索引值 "PK5100" 删除到索引值 "PS2500"。
    SETFLOOR_TILES = ARRAY_DELETE(FLOOR_TILES,'PK5100','PS2500')