Alink教程(Java版)
Alink教程(Python版)
该文档涉及的组件

Flink SQL 内置函数(中文)

Alink的Sql组件支持一组用于数据转换的内置函数。Sql组件使用标准的ANSI SQL语法。

比较函数

SQL语法

描述

value1 = value2

等于。

value1 <> value2

不相等。

value1 > value2

比...更大。

value1 >= value2

大于或等于。

value1 < value2

少于。

value1 <= value2

小于等于。

value IS NULL

如果value为null,则返回TRUE。

value IS NOT NULL

如果value不为null,则返回TRUE。

value1 IS DISTINCT FROM value2

如果两个值不相等则返回TRUE,将null值视为相同。

value1 IS NOT DISTINCT FROM value2

如果两个值相等则返回TRUE,将null值视为相同。

value1 BETWEEN [ASYMMETRIC SYMMETRIC] value2 AND value3

value1 NOT BETWEEN value2 AND value3

如果value1小于value2或大于value3,则返回TRUE。

string1 LIKE string2

如果string1匹配模式string2,则返回TRUE。

string1 NOT LIKE string2

如果string1与模式string2不匹配,则返回TRUE。

string1 SIMILAR TO string2

如果string1匹配正则表达式string2,则返回TRUE。

string1 NOT SIMILAR TO string2

如果string1与正则表达式string2不匹配,则返回TRUE。

value IN (value [, value]* )

如果表达式存在于给定的表达式列表中,则返回TRUE。这是多个OR条件的简写。如果测试集包含NULL,则如果找不到该元素,则结果为NULL;如果可以找到,则结果为TRUE。如果元素为NULL,则结果始终为NULL。例如“42 IN(1,2,3)”导致FALSE。

value NOT IN (value [, value]* )

如果value不等于列表中的每个值,则返回TRUE。

EXISTS (sub-query)

如果子查询返回至少一行,则返回TRUE。仅在可以在连接和组操作中重写操作时才支持。

value IN (sub-query)

如果value等于子查询返回的行,则返回TRUE。尚未在流式传输环境中支持此操作。

value NOT IN (sub-query)

如果value不等于子查询返回的每一行,则返回TRUE。尚未在流式传输环境中支持此操作。


逻辑函数

SQL语法

描述

boolean1 OR boolean2

如果boolean1为TRUE或boolean2为TRUE,则返回TRUE。支持三值逻辑。

boolean1 AND boolean2

如果boolean1和boolean2都为TRUE,则返回TRUE。支持三值逻辑。

NOT boolean

如果boolean不为TRUE,则返回TRUE;?如果布尔值为UNKNOWN,则返回UNKNOWN。

boolean IS FALSE

如果boolean为FALSE,则返回TRUE;?否则返回TRUE。如果布尔值为UNKNOWN,则返回FALSE。

boolean IS NOT FALSE

如果boolean不为FALSE,则返回TRUE;否则返回TRUE。如果布尔值为UNKNOWN,则返回TRUE。

boolean IS TRUE

如果boolean为TRUE,则返回TRUE;如果布尔值为UNKNOWN,则返回FALSE。


算术函数

SQL语法

描述

+ numeric

返回数字。

- numeric

返回负数字。

numeric1 + numeric2

返回numeric1加上numeric2。

numeric1 - numeric2

返回numeric1减去numeric2。

numeric1 * numeric2

返回numeric1乘以numeric2。

numeric1 / numeric2

返回numeric1除以numeric2。

POWER(numeric1, numeric2)

返回numeric1上升到numeric2的幂。

ABS(numeric)

返回numeric的绝对值。

MOD(numeric1, numeric2)

返回numeric1的余数(模数)除以numeric2。仅当numeric1为负数时,结果才为负数。

SQRT(numeric)

返回数字的平方根。

LN(numeric)

返回的自然对数(以e为底)的数字。

LOG10(numeric)

返回数字的基数10对数。

EXP(numeric)

返回e提升到数字的幂。

CEIL(numeric)

将数字向上舍入,并返回大于或等于numeric的最小数字。

CEILING(numeric)

FLOOR(numeric)

将数字向下舍入,并返回小于或等于numeric的最大数字。

SIN(numeric)

计算给定数字的正弦值。

COS(numeric)

计算给定数字的余弦值。

TAN(numeric)

计算给定数字的正切值。

COT(numeric)

计算给定数字的余切值。

ASIN(numeric)

计算给定数字的反正弦值。

ACOS(numeric)

计算给定数字的反余弦值。

ATAN(numeric)

计算给定数字的反正切值。

DEGREES(numeric)

将数字从弧度转换为度数。

RADIANS(numeric)

将数字从度数转换为弧度。

SIGN(numeric)

计算给定数字的符号。

ROUND(numeric, int)

将给定数到整数位权小数点。

PI()

返回比pi更接近任何其他值的值。

E()

返回比e更接近任何其他值的值。

RAND()

返回介于0.0(包括)和1.0(不包括)之间的伪随机双精度值。

RAND(seed integer)

返回0.0(包括)和1.0(不包括)初始种子之间的伪随机双精度值。如果两个RAND函数具有相同的初始种子,则它们将返回相同的数字序列。

RAND_INTEGER(bound integer)

返回介于0.0(包括)和指定值(不包括)之间的伪随机整数值。

RAND_INTEGER(seed integer, bound integer)

返回0.0(包括)之间的伪随机整数值和具有初始种子的指定值(不包括)。如果两个RAND_INTEGER函数具有相同的初始种子和相同的绑定,则它们将返回相同的数字序列。

LOG(x numeric), LOG(base numeric, x numeric)

返回指定数量的指定基数的自然对数。如果使用一个参数调用,则此函数返回自然对数x。如果使用两个参数调用,则此函数返回x基数的对数b。x必须大于0.?b必须大于1。


字符串函数

SQL语法

描述

string1 || string1

连接两个字符串。

CHAR_LENGTH(string)

返回字符串中的字符数。

UPPER(string)

返回转换为大写的字符串。

LOWER(string)

返回转换为小写的字符串。

POSITION(string1 IN string2)

返回第一次出现的位置字符串1的字符串2。

TRIM( { BOTH,LEADING,TRAILING } string1 FROM string2)

从string2中删除前导和/或尾随字符。默认情况下,两侧的空格都被删除。

OVERLAY(string1 PLACING string2 FROM integer [ FOR integer2 ])

用string2替换string1的子字符串。

SUBSTRING(string FROM integer)

返回从给定点开始的字符串的子字符串。

SUBSTRING(string FROM integer FOR integer)

返回从具有给定长度的给定点开始的字符串的子字符串。

INITCAP(string)

返回字符串,每个字转换器的第一个字母为大写,其余为小写。单词是由非字母数字字符分隔的字母数字字符序列。

CONCAT(string1, string2,...)

返回连接参数产生的字符串。如果任何参数为NULL,则返回NULL。例如CONCAT("AA", "BB", "CC")返回AABBCC。

CONCAT_WS(separator, string1, string2,...)

返回使用分隔符连接参数产生的字符串。在要连接的字符串之间添加分隔符。返回NULL如果分隔符为NULL。CONCAT_WS()不会跳过空字符串。但是,它会跳过任何NULL参数。例如CONCAT_WS("", "AA", "BB", "", "CC")返回AABB~~CC

BOOLEAN REGEXP(String str, String pattern)

指定str的字符串是否匹配指定的pattern进行正则匹配,str或者pattern为空或NULL返回false。

String REGEXP_REPLACE(String str, String pattern, String replacement)

用字符串replacement替换字符串str中正则模式为pattern的子串,返回新的字符串。正在匹配替换, 参数为null或者正则不合法返回null。

String REGEXP_EXTRACT(String str, String pattern, INT index)

使用正则模式pattern匹配抽取字符串str中的第index个子串,index 从1开始 正在匹配提取, 参数为null或者正则不合法返回null。


条件函数

SQL语法

描述

CASE value WHEN value1 [, value11 ]_ THEN result1 [ WHEN valueN [, valueN1 ]_ THEN resultN ]* [ ELSE resultZ ] END

简单的案例。

CASE WHEN condition1 THEN result1 [ WHEN conditionN THEN resultN ]* [ ELSE resultZ ] END

搜索案例。

NULLIF(value, value)

如果值相同,则返回NULL。例如,NULLIF(5, 5)返回NULL; NULLIF(5, 0)返回5。

COALESCE(value, value [, value ]* )

如果第一个值为null,则提供值。例如,COALESCE(NULL, 5)返回5。


类型转换功能

SQL语法

描述

CAST(value AS type)

将值转换为给定类型。type的取值包括:VARCHAR, BOOLEAN, TINYINT, SMALLINT, INTEGER/INT,, BIGINT, REAL/FLOAT, DOUBLE, DECIMAL, DATE, TIME, TIMESTAMP(3)

时间函数

SQL语法

描述

DATE string

将“yy-mm-dd”形式的日期字符串解析为SQL日期。

TIME string

将“hh:mm:ss”形式的时间字符串解析为SQL时间。

TIMESTAMP string

将“yy-mm-dd hh:mm:ss.fff”形式的时间戳字符串解析为SQL时间戳。

INTERVAL string range

对于SQL间隔为毫秒,以“dd hh:mm:ss.fff”形式解析间隔字符串,对于SQL间隔月,解析“yyyy-mm”。的间隔范围可以是例如DAY,MINUTE,DAY TO HOUR,或DAY TO SECOND的毫秒时间间隔; YEAR或YEAR TO MONTH间隔数月。例如INTERVAL '10 00:00:00.004' DAY TO SECOND,INTERVAL '10' DAY或INTERVAL '2-10' YEAR TO MONTH返回间隔。

CURRENT_DATE

以UTC时区返回当前SQL日期。

CURRENT_TIME

以UTC时区返回当前SQL时间。

CURRENT_TIMESTAMP

以UTC时区返回当前SQL时间戳。

LOCALTIME

返回本地时区的当前SQL时间。

LOCALTIMESTAMP

返回本地时区的当前SQL时间戳。

EXTRACT(timeintervalunit FROM temporal)

提取时间点或时间间隔的部分内容。将部件作为long值返回。例如,EXTRACT(DAY FROM DATE '2006-06-05')导致5。

FLOOR(timepoint TO timeintervalunit)

将时间点向下舍入到给定单位。例如,FLOOR(TIME '12:44:31' TO MINUTE)导致12:44:00。

CEIL(timepoint TO timeintervalunit)

将时间点舍入到给定单位。例如,CEIL(TIME '12:44:31' TO MINUTE)导致12:45:00。

QUARTER(date)

返回SQL日期的一年中的四分之一。例如,QUARTER(DATE '1994-09-27')导致3。

(timepoint, temporal) OVERLAPS (timepoint, temporal)

确定两个锚定时间间隔是否重叠。时间点和时间被转换为由两个时间点(开始,结束)定义的范围。该函数评估leftEnd >= rightStart && rightEnd >= leftStart。例如,(TIME '2:55:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:30:00', INTERVAL '2' HOUR)导致真实; (TIME '9:00:00', TIME '10:00:00') OVERLAPS (TIME '10:15:00', INTERVAL '3' HOUR)导致错误。

DATE_FORMAT(timestamp, format) (备注:该函数用的是GMT-0时区而不是本地时区)

timestamp使用指定format字符串格式化为字符串。格式必须与date_parse函数使用的MySQL日期格式语法兼容。格式规范在下面的日期格式说明表中给出。例如DATE_FORMAT(ts, '%Y, %d %M'),字符串格式为的结果"2017, 05 May"。

DATE_FORMAT_LTZ(timestamp, format) (备注:该函数用的是本地时区)

timestamp使用指定format字符串格式化为字符串。格式必须与date_parse函数使用的MySQL日期格式语法兼容。格式规范在下面的日期格式说明表中给出。例如DATE_FORMAT(ts, '%Y, %d %M'),字符串格式为的结果"2017, 05 May"。

TIMESTAMPADD(unit, interval, timestamp)

将(带符号)整数间隔添加到时间戳。某一间隔的单元由单元参数,它应为以下值中的一个给定的:SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,QUARTER,或YEAR。例如,TIMESTAMPADD(WEEK, 1, '2003-01-02')导致2003-01-09。

String DATE_SUB(String startdate, INT days);String DATE_SUB(TIMESTAMP time, INT days)

为日期减去天数,日期格式可以是yyyy-MM-dd hh:mm:ss或yyyy-MM-dd或TIMESTAMP,返回String格式的日期yyyy-MM-dd,若有参数为null或解析错误,返回null。

String DATE_ADD(String startdate, INT days);String DATE_ADD(TIMESTAMP time, INT days)

返回指定startdate日期间隔后days天数的一个全新的String类型日期,日期格式可以是yyyy-MM-dd hh:mm:ss或yyyy-MM-dd或timestamp,返回string格式的日期yyyy-MM-dd,若有参数为null或解析错误,返回null。

INT DATEDIFF(String enddate, String startdate);INT DATEDIFF(TIMESTAMP enddate, String startdate);INT DATEDIFF(String enddate, TIMESTAMP startdate);INT DATEDIFF(TIMESTAMP enddate, TIMESTAMP startdate)

计算从enddate到startdate两个时间的天数差值,日期格式可以是yy-MM-dd HH:mm:ss或yy-MM-dd或timestamp,返回整数,若有参数为null或解析错误,返回null

TIMESTAMP TO_TIMESTAMP(BIGINT time);TIMESTAMP TO_TIMESTAMP(String date);TIMESTAMP TO_TIMESTAMP(String date, String format)

将bigint类型的日期或者String类型的日期转换成TimeStamp类型。

BIGINT UNIX_TIMESTAMP();BIGINT UNIX_TIMESTAMP(String date);BIGINT UNIX_TIMESTAMP(String date, String format)

两个参数,均为可选,无参数时返回当前时间的时间戳,单位为秒,第一个参数是字符串类型的时间,第二个参数是时间的格式,默认为yyyy-MM-dd hh:mm:ss,返回值是第一个参数转换成的长整型的时间戳,单位为秒,若有参数为null或解析错误,返回null。

String FROM_UNIXTIME(BIGINT unixtime [ String format])

第一个参数unixtime为长整型,是以秒为单位的时间戳,第二个参数format可选,为日期格式,默认为yyyy-MM-dd HH:mm:ss,返回String类型的符合指定格式的日期,若有参数为null或解析错误,返回null。返回值为String类型的日期值, 默认日期格式:yyyy-MM-dd HH:mm:ss,若指定日期格式按指定格式输出 任一输入参数是NULL,返回NULL。

BIGINT NOW()

返回当前时区时间的时间戳,单位为秒,可以接受一个整型参数作为偏移值(单位:秒)


聚合函数

SQL语法

描述

COUNT(value [, value]* )

返回值不为null 的输入行数。

COUNT(*)

返回输入行数。

AVG(value)

返回所有输入值的数值的平均值(算术平均值)。

SUM(value)

返回所有输入值的数字总和。

MAX(value)

返回的最大值值在所有的输入值。

MIN(value)

返回的最小值的值在所有的输入值。

STDDEV_POP(value)

返回所有输入值的数字字段的总体标准偏差。

STDDEV_SAMP(value)

返回所有输入值的数字字段的样本标准偏差。

VAR_POP(value)

返回所有输入值中数字字段的总体方差(总体标准差的平方)。

VAR_SAMP(value)

返回所有输入值的数值字段的样本方差(样本标准差的平方)。

COLLECT(value)

返回值 s 的多集。null输入值将被忽略。如果仅添加空值,则返回空的multiset。

CONCAT_AGG(value, sep)

sep是分隔符,用指定的spearator做分隔符,连接value中的值。


分组函数

SQL语法

描述

GROUP_ID()

返回唯一标识分组键组合的整数。

GROUPING(expression)

如果表达式在当前行的分组集中汇总,则返回1,否则返回0。

GROUPING_ID(expression [, expression]* )

返回给定分组表达式的位向量。

访问函数

SQL语法

描述

tableName.compositeType.field

按名称访问Flink复合类型(如Tuple,POJO等)的字段并返回其值。

tableName.compositeType.*

将Flink复合类型(例如Tuple,POJO等)及其所有直接子类型转换为平面表示形式,其中每个子类型都是单独的字段。

数组函数

SQL语法

描述

ARRAY ‘[’ value [, value ]* ‘]’

从值列表创建数组。

CARDINALITY(ARRAY)

返回数组的元素数。

array ‘[’ index ‘]’

返回数组中特定位置的元素。指数从1开始。

ELEMENT(ARRAY)

返回具有单个元素的数组的唯一元素。null如果数组为空,则返回。如果数组有多个元素,则抛出异常。

保留关键字

虽然并非每个SQL功能都已实现,但某些字符串组合已被保留为关键字以供将来使用。如果要将以下字符串之一用作字段名称,请确保使用反引号将其包围(例如valuecount)。
A, ABS, ABSOLUTE, ACTION, ADA, ADD, ADMIN, AFTER, ALL, ALLOCATE, ALLOW, ALTER, ALWAYS, AND, ANY, ARE, ARRAY, AS, ASC, ASENSITIVE, ASSERTION, ASSIGNMENT, ASYMMETRIC, AT, ATOMIC, ATTRIBUTE, ATTRIBUTES, AUTHORIZATION, AVG, BEFORE, BEGIN, BERNOULLI, BETWEEN, BIGINT, BINARY, BIT, BLOB, BOOLEAN, BOTH, BREADTH, BY, C, CALL, CALLED, CARDINALITY, CASCADE, CASCADED, CASE, CAST, CATALOG, CATALOG_NAME, CEIL, CEILING, CENTURY, CHAIN, CHAR, CHARACTER, CHARACTERISTICTS, CHARACTERS, CHARACTER_LENGTH, CHARACTER_SET_CATALOG, CHARACTER_SET_NAME, CHARACTER_SET_SCHEMA, CHAR_LENGTH, CHECK, CLASS_ORIGIN, CLOB, CLOSE, COALESCE, COBOL, COLLATE, COLLATION, COLLATION_CATALOG, COLLATION_NAME, COLLATION_SCHEMA, COLLECT, COLUMN, COLUMN_NAME, COMMAND_FUNCTION, COMMAND_FUNCTION_CODE, COMMIT, COMMITTED, CONDITION, CONDITION_NUMBER, CONNECT, CONNECTION, CONNECTION_NAME, CONSTRAINT, CONSTRAINTS, CONSTRAINT_CATALOG, CONSTRAINT_NAME, CONSTRAINT_SCHEMA, CONSTRUCTOR, CONTAINS, CONTINUE, CONVERT, CORR, CORRESPONDING, COUNT, COVAR_POP, COVAR_SAMP, CREATE, CROSS, CUBE, CUME_DIST, CURRENT, CURRENT_CATALOG, CURRENT_DATE, CURRENT_DEFAULT_TRANSFORM_GROUP, CURRENT_PATH, CURRENT_ROLE, CURRENT_SCHEMA, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_TRANSFORM_GROUP_FOR_TYPE, CURRENT_USER, CURSOR, CURSOR_NAME, CYCLE, DATA, DATABASE, DATE, DATETIME_INTERVAL_CODE, DATETIME_INTERVAL_PRECISION, DAY, DEALLOCATE, DEC, DECADE, DECIMAL, DECLARE, DEFAULT, DEFAULTS, DEFERRABLE, DEFERRED, DEFINED, DEFINER, DEGREE, DELETE, DENSE_RANK, DEPTH, DEREF, DERIVED, DESC, DESCRIBE, DESCRIPTION, DESCRIPTOR, DETERMINISTIC, DIAGNOSTICS, DISALLOW, DISCONNECT, DISPATCH, DISTINCT, DOMAIN, DOUBLE, DOW, DOY, DROP, DYNAMIC, DYNAMIC_FUNCTION, DYNAMIC_FUNCTION_CODE, EACH, ELEMENT, ELSE, END, END-EXEC, EPOCH, EQUALS, ESCAPE, EVERY, EXCEPT, EXCEPTION, EXCLUDE, EXCLUDING, EXEC, EXECUTE, EXISTS, EXP, EXPLAIN, EXTEND, EXTERNAL, EXTRACT, FALSE, FETCH, FILTER, FINAL, FIRST, FIRST_VALUE, FLOAT, FLOOR, FOLLOWING, FOR, FOREIGN, FORTRAN, FOUND, FRAC_SECOND, FREE, FROM, FULL, FUNCTION, FUSION, G, GENERAL, GENERATED, GET, GLOBAL, GO, GOTO, GRANT, GRANTED, GROUP, GROUPING, HAVING, HIERARCHY, HOLD, HOUR, IDENTITY, IMMEDIATE, IMPLEMENTATION, IMPORT, IN, INCLUDING, INCREMENT, INDICATOR, INITIALLY, INNER, INOUT, INPUT, INSENSITIVE, INSERT, INSTANCE, INSTANTIABLE, INT, INTEGER, INTERSECT, INTERSECTION, INTERVAL, INTO, INVOKER, IS, ISOLATION, JAVA, JOIN, K, KEY, KEY_MEMBER, KEY_TYPE, LABEL, LANGUAGE, LARGE, LAST, LAST_VALUE, LATERAL, LEADING, LEFT, LENGTH, LEVEL, LIBRARY, LIKE, LIMIT, LN, LOCAL, LOCALTIME, LOCALTIMESTAMP, LOCATOR, LOWER, M, MAP, MATCH, MATCHED, MAX, MAXVALUE, MEMBER, MERGE, MESSAGE_LENGTH, MESSAGE_OCTET_LENGTH, MESSAGE_TEXT, METHOD, MICROSECOND, MILLENNIUM, MIN, MINUTE, MINVALUE, MOD, MODIFIES, MODULE, MONTH, MORE, MULTISET, MUMPS, NAME, NAMES, NATIONAL, NATURAL, NCHAR, NCLOB, NESTING, NEW, NEXT, NO, NONE, NORMALIZE, NORMALIZED, NOT, NULL, NULLABLE, NULLIF, NULLS, NUMBER, NUMERIC, OBJECT, OCTETS, OCTET_LENGTH, OF, OFFSET, OLD, ON, ONLY, OPEN, OPTION, OPTIONS, OR, ORDER, ORDERING, ORDINALITY, OTHERS, OUT, OUTER, OUTPUT, OVER, OVERLAPS, OVERLAY, OVERRIDING, PAD, PARAMETER, PARAMETER_MODE, PARAMETER_NAME, PARAMETER_ORDINAL_POSITION, PARAMETER_SPECIFIC_CATALOG, PARAMETER_SPECIFIC_NAME, PARAMETER_SPECIFIC_SCHEMA, PARTIAL, PARTITION, PASCAL, PASSTHROUGH, PATH, PERCENTILE_CONT, PERCENTILE_DISC, PERCENT_RANK, PLACING, PLAN, PLI, POSITION, POWER, PRECEDING, PRECISION, PREPARE, PRESERVE, PRIMARY, PRIOR, PRIVILEGES, PROCEDURE, PUBLIC, QUARTER, RANGE, RANK, READ, READS, REAL, RECURSIVE, REF, REFERENCES, REFERENCING, REGR_AVGX, REGR_AVGY, REGR_COUNT, REGR_INTERCEPT, REGR_R2, REGR_SLOPE, REGR_SXX, REGR_SXY, REGR_SYY, RELATIVE, RELEASE, REPEATABLE, RESET, RESTART, RESTRICT, RESULT, RETURN, RETURNED_CARDINALITY, RETURNED_LENGTH, RETURNED_OCTET_LENGTH, RETURNED_SQLSTATE, RETURNS, REVOKE, RIGHT, ROLE, ROLLBACK, ROLLUP, ROUTINE, ROUTINE_CATALOG, ROUTINE_NAME, ROUTINE_SCHEMA, ROW, ROWS, ROW_COUNT, ROW_NUMBER, SAVEPOINT, SCALE, SCHEMA, SCHEMA_NAME, SCOPE, SCOPE_CATALOGS, SCOPE_NAME, SCOPE_SCHEMA, SCROLL, SEARCH, SECOND, SECTION, SECURITY, SELECT, SELF, SENSITIVE, SEQUENCE, SERIALIZABLE, SERVER, SERVER_NAME, SESSION, SESSION_USER, SET, SETS, SIMILAR, SIMPLE, SIZE, SMALLINT, SOME, SOURCE, SPACE, SPECIFIC, SPECIFICTYPE, SPECIFIC_NAME, SQL, SQLEXCEPTION, SQLSTATE, SQLWARNING, SQL_TSI_DAY, SQL_TSI_FRAC_SECOND, SQL_TSI_HOUR, SQL_TSI_MICROSECOND, SQL_TSI_MINUTE, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_SECOND, SQL_TSI_WEEK, SQL_TSI_YEAR, SQRT, START, STATE, STATEMENT, STATIC, STDDEV_POP, STDDEV_SAMP, STREAM, STRUCTURE, STYLE, SUBCLASS_ORIGIN, SUBMULTISET, SUBSTITUTE, SUBSTRING, SUM, SYMMETRIC, SYSTEM, SYSTEM_USER, TABLE, TABLESAMPLE, TABLE_NAME, TEMPORARY, THEN, TIES, TIME, TIMESTAMP, TIMESTAMPADD, TIMESTAMPDIFF, TIMEZONE_HOUR, TIMEZONE_MINUTE, TINYINT, TO, TOP_LEVEL_COUNT, TRAILING, TRANSACTION, TRANSACTIONS_ACTIVE, TRANSACTIONS_COMMITTED, TRANSACTIONS_ROLLED_BACK, TRANSFORM, TRANSFORMS, TRANSLATE, TRANSLATION, TREAT, TRIGGER, TRIGGER_CATALOG, TRIGGER_NAME, TRIGGER_SCHEMA, TRIM, TRUE, TYPE, UESCAPE, UNBOUNDED, UNCOMMITTED, UNDER, UNION, UNIQUE, UNKNOWN, UNNAMED, UNNEST, UPDATE, UPPER, UPSERT, USAGE, USER, USER_DEFINED_TYPE_CATALOG, USER_DEFINED_TYPE_CODE, USER_DEFINED_TYPE_NAME, USER_DEFINED_TYPE_SCHEMA, USING, VALUE, VALUES, VARBINARY, VARCHAR, VARYING, VAR_POP, VAR_SAMP, VERSION, VIEW, WEEK, WHEN, WHENEVER, WHERE, WIDTH_BUCKET, WINDOW, WITH, WITHIN, WITHOUT, WORK, WRAPPER, WRITE, XML, YEAR, ZONE

日期格式说明符

日期格式说明符

描述

%a

缩写的工作日名称(Sun.. Sat)

%b

缩写的月份名称(Jan.. Dec)

%c

月,数字(1.. 12)

%D

这个月的一天,英语后缀(0th,1st,2nd,3rd,...)

%d

每月的某天,数字(01.. 31)

%e

每月的某天,数字(1.. 31)

%f

第二个分数(打印6位数:000000... 999000;解析时为1 - 9位数:0..999999999)(时间戳被截断为毫秒。)

%H

小时(00.. 23)

%h

小时(01.. 12)

%I

小时(01.. 12)

%i

分钟,数字(00.. 59)

%j

一年中的某一天(001.. 366)

%k

小时(0.. 23)

%l

小时(1.. 12)

%M

月份名称(January.. December)

%m

月,数字(01.. 12)

%p

AM 要么 PM

%r

时间,12小时(hh:mm:ss其次是AM或PM)

%S

秒(00... 59)

%s

秒(00... 59)

%T

时间,24小时(hh:mm:ss)

%U

周(00.. 53),周日是一周的第一天

%u

周(00.. 53),周一是一周的第一天

%V

周(01.. 53),周日是一周的第一天; 用于%X

%v

周(01.. 53),周一是一周的第一天; 用于%x

%W

平日名称(Sunday.. Saturday)

%w

星期几(0.. 6),星期日是一周的第一天

%X

星期日是星期的第一天的星期,数字,四位数; 用于%V

%x

一周的年份,星期一是一周的第一天,数字,四位数; 用于%v

%Y

年份,数字,四位数

%y

年份,数字(两位数)

%%

文字%字符

%x

x,对于x上面未列出的任何内容

常见错误

语句

错误信息

错误原因

解决办法

select average_pay, product_time as time, province from ${t0}

"实验运行失败Invalid Node[SqlCmd]: SQL parse failed. Encountered "as time" at line 1, column 29. Was expecting one of: "ORDER" ... "LIMIT" ... "OFFSET" ... "FETCH" ... "FROM" ... "," ... "AS" ... "AS" ... "AS" ... "AS"
... "AS"
... "." ... "NOT" ... "IN" ... "<" ... "<=" ... ">" ... ">=" ... "=" ... "<>" ... "!=" ... "BETWEEN" ... "LIKE" ... "SIMILAR" ... "+" ... "-" ... "*" ... "/" ... "%" ... "||" ... "AND" ... "OR" ... "IS" ... "MEMBER" ... "SUBMULTISET" ... "CONTAINS" ... "OVERLAPS" ... "EQUALS" ... "PRECEDES" ... "SUCCEEDS" ... "IMMEDIATELY" ... "MULTISET" ... "[" ... "UNION" ... "INTERSECT" ... "EXCEPT" ... "MINUS" ."

列名'time'与Flink保留字冲突

用反引号引用,如: select average_pay, product_time as time, province from ${t0}

if a < 0.5

不支持if

需要换成case when