阅读(3267) (0)

OceanBase SQL 表达式概述

2021-06-24 10:38:55 更新

表达式用来计算数据的值,它由一个或多个数值、运算符和 SQL 函数等组件组合而成,通常表达式中要为它的组件假定数据类型。

注意 
NLS_COMP 与 NLS_SORT 两个参数值共同影响字符的排序与比较。如果在数据库中 NLS_COMP 的值为LINGUISTIC,那么本章节中所有被提到的实体都会遵循参数 NLS_SORT 所指定的规则。如果 NLS_COMP 的值没有被指定为 LINGUISTIC,那么函数将不会受 NLS_SORT 的影响。NLS_SORT 的值可以被直接指定,如果没有被指定,它将继承 NLS_LANGUAGE 的值。

下面这个简单表达式的计算结果为 4,数据类型为 NUMBER (与组件的数据类型一致)。

2*2

如下是一个使用了函数和运算符的复杂表达式。这个表达式表示将当前日期增加 7 天,然后移除时间部分,最后将结果转换成 CHAR 数据类型。

TO_CHAR(TRUNC(SYSDATE+7))

您还可以在如下情形中使用表达式:

  • SELECT 语句的选择列中。
  • WHERE 子句中和 HAVING 子句中。
  • CONNECT BYSTART WITH 和 ORDER BY 子句中。
  • INSERT 语句的 VALUES 子句中。
  • UPDATE 语句的 SET 子句中。

例如,在下面的 UPDATE 语句的 SET 子句中您可以使用一个表达式替换字符串 Smith

SET last_name = 'Smith';

这个 SET 子句使用表达式 INITCAP(last_name) 替代字符串 Smith

SET last_name = INITCAP(last_name);

OceanBase 数据库中,并不是所有表达式都可以直接被任意 SQL 语句使用,请参考 SQL语句 章节中关于表达式的限制。