Tabelau 常用函数
2020-05-05 本文已影响0人
MonsFinn
数字函数
1. 转换
- 绝对值:ABS(number)
- 舍入微更大的最近整数值:CEILING (number)
- 更小的最近整数:FLOOR (number)
- 返回数字的自然对数:LN(number)
- 返回两个参数( 必须为相同类型) 中的较大值:MAX(number, number)
- 给定数字从度数转换为弧度:RADIANS (number)
- 舍入为指定位数:ROUND (number, [decimals])
- 返回数字的符号:SIGN(number)
2. 三角函数
- 反余弦:ACOS(number)
- 反正弦:ASIN(number)
- 反正切:ATAN(number)
- 两个反正切:ATAN2(y number, x number)
- 余弦:COS(number)
- 余切:COT(number)
- 弧度转角度:DEGREES (number)
3. 统计运算
- 返回两个数的整数商:DIV(整数 1, 整数2)
- 返回 e 的给定数字次幂:EXP(number)
- 计算数字的指定次幂:POWER (number, power)
- 返回数字的平方根:SQRT(number)
- 返回数字的平方:SQUARE (number)
4. 逻辑
- 如果表达式不为 Null,则返回该表达式,否则返回零:ZN (expression)
二、字符串函数
1. 转换
- 返回 string 的第一个字符的 ASCII 码:ASCII (string)
- 返回通过 ASCII 代码 number 编码的字符:CHAR(number)
- 返回 string,其所有字符为小写:LOWER (string)
- 返回字符串,其所有字符为大写:UPPER (string)
- 返回由指定 number 个重复空格组成的字符串:SPACE (number)
- 返回移除了前导和尾随空格的字符串:TRIM(string)
- 返回移除了所有尾随空格的 string:RTRIM (string)
2. 运算
- 返回 substring 在 string 中的索引位置,如果未找到 substring,则返回 0。如果添加了可选参数 start,则函数会忽略在索引位置 start 之前出 现的任何 substring 实例。字符串中第一个字符 的位置为 1:FIND(string, substring, [start])
- 返回指定字符串内的第 n 个子字符串的位置,其中 n 由 occurrence 参数定义:FINDNTH (string, substring, occurrence)
- 返回字符串最左侧一定数量的字符: LEFT(string, number)
- 返回 string 中最右侧一定数量的字符:RIGHT (string, number)
- 返回字符串长度:LEN(string)
- 对于字符串, MAX 查找数据库为该列定义的排序序列中的最高值:
MAX(a, b) - 对于字符串, MIN 查找排序序列中的最低值:MIN(a, b)
- 返回从索引位置 start 开始的字符串。字符串中第 一个字符的位置为 1。如果添加了可选参数 length,则返回的字符串仅包含该数量的字符:(MID(string, start, [length])
- 在 string 中搜索 substring 并将其替换为 replacement。如果未找到 substring,则字符 串保持不变:REPLACE (string, substring, replacement)
- 返回字符串中的一个子字符串,并使用分隔符字符 将字符串分为一系列标记:SPLIT (string, delimiter, token number)
3. 逻辑
- 如果给定字符串包含指定子字符串,则返回 true:
CONTAINS (string, substring) - 如果给定字符串以指定子字符串结尾,则返回 true:
ENDSWITH (string, substring) - 如果 string 以 substring 开头,则返回 true:STARTSWITH (string, substring)
三、日期函数
1. 转换
- 以整数的形式返回给定日期的天:DAY(date)
- 以整数的形式返回给定日期的月份:MONTH(date)
- 返回一个依据指定年份、月份和日期构造的日期值:MAKEDATE (year, month, day)
- 返回合并了 date 和 time 的 datetime:MAKEDATETIME (date, time)
- 返回一个依据指定小时、分钟和秒构造的日期值:MAKETIME (hour, minute, second)
- DATE (expression)
- DATETIME(expression)
- DATEPARSE (format, string)
- FLOAT (expression)
- INT (expression)
- 表达式转换为字符串:STR (expression)
2. 运算
- 返回指定日期,该日期的指定 date_part 中添加 了指定的数字 interval:DATEADD (date_part, interval, date)
- 返回 date1 与 date2 之差( 以 date_part 的单位表示) :DATEDIFF (date_part, date1, date2, [start_of_ week])
- 以字符串的形式返回 date 的 date_part:DATENAME (date_part, date, [start_of_ week])
- 以整数的形式返回 date 的 date_part:DATEPART (date_part, date, [start_of_ week])
- 按 date_part 指定的准确度截断指定日期:DATETRUNC (date_part, date, [start_of_ week])
- 通常应用于数字,不过也适用于日期。返回 a 和 b 中的较大值( a 和 b 必须为相同类型) 。如果任一参 数为 Null,则返回 Null:MAX (expression) or MAX (expr1, expr2)
- 通常应用于数字,不过也适用于日期。返回 a 和 b 中的较小值( a 和 b 必须为相同类型) 。如果任一参 数为 Null,则返回 Null:MIN (expression) or MIN (expr1, expr2)
3. 逻辑
- 如果给定字符串为有效日期,则返回 true:ISDATE (string)
四、逻辑函数
1. 逻辑
- AND
- CASE 函数可评估expression,并将其与一系列值( value1、value2 等) 比较,然后返回结果
CASE<expression> WHEN <value1> THEN <return1> WHEN <value2> THEN <return2> ... ELSE <default return> END - IF <expr> THEN <then> [ELSEIF <expr2> THEN<then2>...] [ELSE <else>] END
- 如果 <expr1> 不为 null,则返回该表达式,否则返回 <expr2>:IFNULL (expr1, expr2)
- 检查某个条件是否得到满足,如果为 TRUE 则返回一个 值,如果为 FALSE 则返回另一个值,如果未知,则返回 可选的第三个值或 NULL:IIF(test, then, else, [unknown])
- 如果表达式未包含有效数据 (Null),则返回 true:ISNULL (expression)
- 返回单一表达式所有记录中的最大值,或返回每条记录 两个表达式中的最大值:MAX (expression) 或 Max(expr1, expr2)
- IF NOT <expr> THEN <then> END
五、 聚合函数
- 如果它的所有行都有一个值,则返回该表达式的值。否则返回星号。会忽略 Null 值:ATTR (expression)
- 返回表达式中所有值的平均值:AVG (expression)
- 将参数字段中的值组合在一起的聚合计算:COLLECT (spatial)
- 返回两个表达式的皮尔森相关系数:CORR (expression 1, expression2)
- 返回组中的项目数。不对 Null 值计数:COUNT (expression)
- 返回组中不同项目的数量。不对 Null 值计数:COUNTD (expression)
- 返回两个表达式的 样本协方差:COVAR (expression 1, expression2)
- 返回两个表达式的 总体协方差:COVARP (expression1, expression2)
- ::返回表达式在所有记录中的中位数。中位数只能用于数字字段:::MEDIAN (expression)
- 从给定表达式返回与指定数字对应的百分位处的值:PERCENTILE (expression, number)
- 基于群体样本返回给定表达式中所有值的统计标准差:STDEV (expression)
- 基于有偏差群体返回给定表达式中所有值的统计标准差:STDEVP (expression)
- 基于群体样本返回给定表达式中所有值的统计方差:VAR (expression)
- 对整个群体返回给定表达式中所有值的统计方差:VARP (expression)
六、表计算函数(通过创建计算字段创建)
- 返回从当前行到分区中第一行的行数:FIRST( )
- 返回分区中当前行的索引,不包含与值有关的任何排序:INDEX( )
- 返回从当前行到分区中最后一行的行数:LAST( )
- 返回目标行( 指定为与当前行的相对偏移) 中表达式的值:LOOKUP(expression, [offset])
- 返回此计算在上一行中的值:PREVIOUS_VALUE(expression)
- 返回分区中当前行的标准竞争排名。为相同的值分配相同的排名:RANK(expression, ['asc' | 'desc'])
还有RANK、 PERCENTILE 、 RANK_UNIQUE等效果
- 返回给定表达式从分区中第一行到当前行的运行平均值(非嵌套):RUNNING_AVG(expression)
- 返回给定表达式从分区中第一行到当前行的运行计数:RUNNING_COUNT(expression)
- 返回给定表达式从分区中第一行到当前行的运行最大值:RUNNING_MAX(expression)
- 返回分区中的行数:SIZE()
- 返回表计算分区内表达式的总计:TOTAL(expression)
- 返回窗口中表达式的平均值:WINDOW_AVG(expression, [start, end])
- 返回窗口内两个表达式的皮尔森相关系数。窗口定义为与当前行的偏移。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了 start 和 end,则使用整个分区:WINDOW_CORR(expression1, expression2, [start, end])
- 返回窗口中表达式的计数:WINDOW_COUNT(expression, [start, end])
- ::返回指定表达式的布尔结果:::SCRIPT_BOOL
- ::返回指定表达式的整数结果:::SCRIPT_INT
- SCRIPT_REAL
- SCRIPT_STR
七、其他函数(重要)
- 返回给定字符串的副本,其中正则表达式模式被替换字符串取代:REGEXP_REPLACE(字符串, 模式, 替换字符串)
REGEXP_REPLACE('abc 123', '\s', '-') = 'abc-123' - 如果指定的字符串的子字符串匹配正则表达式模式,则返回 true:REGEXP_MATCH(字符串, 模式)
- 返回与正则表达式模式匹配的字符串部分:REGEXP_EXTRACT(string, pattern)
- 返回与正则表达式模式匹配的字符串部分:REGEXP_EXTRACT_NTH(string, pattern, index)