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功能都已实现,但某些字符串组合已被保留为关键字以供将来使用。如果要将以下字符串之一用作字段名称,请确保使用反引号将其包围(例如value,count)。
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" | 列名'time'与Flink保留字冲突 | 用反引号引用,如: select average_pay, product_time as time, province from ${t0} |
if a < 0.5 | 不支持if | 需要换成case when |