可信智能计算服务 TICS-标量函数

时间:2024-06-28 17:54:35

标量函数

  • 字符串函数

    函数

    返回类型

    描述

    示例

    结果

    CHAR_LENGTH(s STRING)

    BIGINT

    字符串的字符个数

    CHAR_LENGTH('123')

    3

    CONCAT(s1 VARCHAR,s2 VARCHAR)

    VARCHAR

    字符串连接

    CONCAT('a','b')

    'ab'

    LEFT(s VARCHAR,n INTEGER)

    VARCHAR

    从左边取n个字符

    LEFT('1234',2)

    '12'

    LOWER(s VARCHAR)

    VARCHAR

    把字符串转化为小写

    LOWER('Tom')

    'tom'

    OCTET_LENGTH(s VARCHAR)

    BIGINT

    获取字符串字节长度

    OCTET_LENGTH('123')

    3

    REPEAT(s VARCHAR,n INTEGER)

    VARCHAR

    将字符串重复n遍

    REPEAT('123',2)

    '123123'

    REPLACE(s1 VARCHAR,s2 VARCHAR,s3 VARCHAR)

    VARCHAR

    将字符串s1中的s2字符串替换成s3字符串

    REPLACE('12334', '33', '88')

    '12884'

    RIGHT(s VARCHAR,n INTEGER)

    VARCHAR

    从右这取n个字符

    RIGHT('1234',2)

    '34'

    SUBSTRING(s VARCHAR,n1 INTEGER,n2 INTEGER)

    VARCHAR

    从n1位置取n2长度的子串,没有n2取到字符串最后。

    SUBSTRING('12344',2,3)

    '234'

    SUBSTR(s VARCHAR,n1 INTEGER,n2 INTEGER)

    VARCHAR

    从n1位置取n2长度的子串,没有n2取到字符串最后。

    SUBSTR('12344',2,3)

    '234'

    TRIM(s VARCHAR)

    VARCHAR

    删除字符串前后空格

    TRIM('123')

    '123'

    UPPER(s VARCHAR)

    VARCHAR

    将字符串转为大写

    UPPER('abc')

    'ABC'

    ASCII(s VARCHAR)

    INTEGER

    获得字符数字形式

    注意:VOLTDB不支持,所以不能用到SQL语句中

    ASCII('A')

    65

    OVERLAY(s1 placing s2 FROM int [for int])

    VARCHAR

    替换子字符串。FROM int表示从s1的第几个字符开始替换,for int表示替换s1的字符个数。

    • OVERLAY('HELLO' PLACING 'WORLD' FROM 2 for 3 )
    • OVERLAY('HELLO' PLACING 'WORLD' FROM 2 )
    • 'HWORLDO'
    • 'HWORLD'

    POSITION(s2 VARCHAR, s1 VARCHAR)

    BIGINT

    返回字符串s2在字符串s1的起始位置,字符串的位置下标是以1开头的。如果没有找到匹配,则返回0。

    POSITION('ING' IN 'STRING')

    4

    REPLACE(STRING TEXT, FROM TEXT, TO TEXT)

    VARCHAR

    把字符串STRING里出现的所有子字符串FROM的内容替换成子字符串TO的内容。

    REPLACE('abcdefabcdef', 'cd', 'XXX')

    abXXXefabXXXef

    TRANSLATE(STRING TEXT, FROM TEXT, TO TEXT)

    VARCHAR

    把在STRING中包含的任何匹配FROM中字符的字符转化为对应的在TO中的字符。如果FROM比TO长,删掉在FROM中出现的额外的字符。

    TRANSLATE('12345', '143', 'ax')

    a2x5

  • 数字函数

    函数

    返回类型

    描述

    示例

    结果

    备注

    ABS(x)

    (与x相同)

    绝对值

    ABS(-17.4)

    17.4

    _

    BITAND(n1 BIGINT,n2 BIGINT)

    BIGINT

    位与

    BITAND(6,3)

    2

    2^31~2^32范围内的数进行位与可以先转化为对应相同十六进制的负数再做位与运算

    BITAND(1,2147483)

    1

    CEILING(f FLOAT或者DECIMAL)

    FLOAT或者DECIMAL,与输入参数类型一致

    不小于参数的最小的整数

    CEILING(-42.8)

    -42.0

    实际测试VoltDB中CEILING函数返回值类型为FLOAT

    EXP(f FLOAT)

    FLOAT

    自然指数

    EXP(1.0)

    2.718281828459045

    -

    FLOOR(f FLOAT或者DECIMAL)

    FLOAT或者DECIMAL,与输入参数类型一致

    不大于参数的最大整数

    FLOOR(-42.8)

    -43.0

    -

    LN(f FLOAT)

    FLOAT

    自然对数

    LN(100.0)

    4.605170185988092

    输入值大于0

    LOG (f FLOAT)

    FLOAT

    以10为底取对数

    LOG(100.0)

    2.0000000000000000

    输入值大于0

    MOD(a INTEGER, b INTEGER)

    INTEGER

    a/b的余数(模)

    MOD(9,4)

    1

    b不能为0

    POWER(a FLOAT,b FLOAT)

    FLOAT

    a的b次幂

    POWER(9.0,3.0)

    729.0

    -

    SQRT(f FLOAT)

    FLOAT

    平方根

    SQRT(2.0)

    1.4142135623730951

    -

    PI()

    FLOAT

    返回圆周率

    PI()

    3.141592653589793

    -

  • 时间和日期函数

    函数

    返回类型

    描述

    示例

    结果

    备注

    NOW()

    TIMESTAMP

    获得当前时间

    NOW()

    '2019-03-19 02:11:06.838000'

    -

    EXTRACT(FIELD FROM TIMESTAMP)

    DOUBLE PRECISION

    获取时间的值

    可填入HOUR YEAR MONTH MINUTE SECOND

    EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40')

    20

    -

  • 类型转换函数

    函数

    返回类型

    描述

    示例

    结果

    备注

    CAST(x AS y)

    -

    类型转换函数,将x转换成y指定的类型

    CAST('1997-10-22 00:00:00' AS TIMESTAMP)

    1997-10-22 00:00:00.000000

    -

  • 其它函数(仅在SQL中使用)

    函数

    返回类型

    描述

    示例

    结果

    备注

    COALESCE(expr1,expr2, ..., exprn)

    与输入参数类型一致

    返回参数列表中第一个非NULL的参数值

    COALESCE (expr1, expr2) 等价于CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END

    注意:输入参数类型必须一致。

    COALESCE(null,'abc','123')

    'abc'

    如果表达式列表中的所有表达式都等于NULL,则本函数返回NULL。

    它常用于在显示数据时用缺省值替换NULL 。

    和CASE表达式一样,COALESCE不会计算不需要用来判断结果的参数;也就是说,在第一个非空参数右边的参数不会被计算。

    DECODE(base_expr,Comparel,valuel,Compare2,value2, … default)

    -

    把base_expr与后面的每个compare (n) 进行比较,如果匹配返回相应的value (n)。如果没有发生匹配,则返回default

    注意:base_expr与compare*的数据类型必须一致;value*的数据类型也必须一致。

    flag:=2;

    DECODE(flag ,1,'YEAR',2,'MONTH',3,'DAY','UNKNOWN')

    'MONTH'

    -

support.huaweicloud.com/usermanual-tics/tics_rtd_01_0042.html