OceanBase SQL 表达式概述
表达式用来计算数据的值,它由一个或多个数值、运算符和 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 BY
、START 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语句 章节中关于表达式的限制。