OceanBase 列表达式
列表达式(Column Expressions)是一种形式受限制的 expr,在本章其他表达式的语法中被命名为 column_expression。列表达式可以是 简单表达式、复合表达式、函数表达式 或者 表达式列表,但它只能包含以下形式的表达式:
- 目标表(被创建,变更或索引的表)的列。
- 常量(字符串或数字)。
- 确定性函数(SQL 内建函数或用户自定义函数)。
除以上形式表达式外,其它形式的表达式都不是有效的列表达式。此外,列表达式不支持使用 PRIOR 关键字的复合表达式与聚合函数。
使用列表达式可以实现以下目的:
- 创建基于函数的索引。
- 显式或隐式定义一个虚拟列。定义一个虚拟列时,column_expression 只适用于在此前语句中已经定义的目标表的列。
列表达式的组件必须是确定的,也就是说,输入同样的值必须返回同样的输出值。