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

    注意

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

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

    1. 2*2

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

    1. TO_CHAR(TRUNC(SYSDATE+7))

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

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

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

    1. SET last_name = 'Smith';

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

    1. SET last_name = INITCAP(last_name);

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