Flink SQL之常用函数

官方函数查询地址:https://nightlies.apache.org/flink/flink-docs-release-1.12/dev/table/functions/systemFunctions.html

可根据使用的版本查找,该链接为1.12版本。

1.比较函数

  • = <> >  >= <  <= 

注意:select null=null; 返回为null

  • IS NULL,IS NOT NULL

空判断和非空判断

  • value1 BETWEEN [ ASYMMETRIC | SYMMETRIC ] value2 AND value3

例如:select 1 between 0 and 2; 返回true。默认ASYMMETRIC 表示value1在闭区间内 [value2,value3]

  • string1 LIKE string2 、string1 NOT LIKE string2 

例如:select 'abc' like 'a%'; 返回true,用 '用%或_模糊数据

  • value1 IN (value2 [, value3]* )、value1 NOT IN (value2 [, value3]* )

例如:select 'abc' in ('abc','e','f'); 返回true,要求类型必须一致(都为字符串,或都为其它)。select 1 in (1,2,3,4); 

  • EXISTS (sub-query)

例如:select  EXISTS (select 1); 返回true(自查询至少返回一行时)

  • value IN (sub-query)、value NOT IN (sub-query)

例如:select 1 in (select 1); 值等于子查询返回的行(只限于一个值),返回true. select 'abc' in (select 'abc'); 

2.逻辑函数

  • OR 、AND
  • NOT boolean
  • boolean IS FALSE、boolean IS NOT FALSE
  • boolean IS TRUE、boolean IS NOT TRUE、
  • boolean IS UNKNOWN、boolean IS NOT UNKNOWN

例如:select null=null  IS UNKNOWN; 返回true

3.算术函数

  • + - * /  % MOD(numeric1, numeric2) 

例如:select MOD(3,2); 3除以2的余数=1.仅当numeric1为负时结果为负

  • POWER(numeric1, numeric2) 

例如:select POWER(2,3); 返回2 的 3次幂=8.0

  • ABS(numeric) 

例如:select ABS(-1); 返回绝对值1

  • CEIL(numeric)

例如:向上取整  select CEIL(2.3); 返回3.000000

  • FLOOR(numeric)

例如:向下取整 select FLOOR(2.3); 返回2.000000

  • ROUND(numeric, integer)

例如:
--select ROUND(2.3,1); 保留1位小数2.30000。
--select ROUND(2.3,0); 保留0位小数 2.0000

  • TRUNCATE(numeric1, integer2) 

例如:select TRUNCATE(2.3,1);保留1位小数2.30000  select TRUNCATE(2.3,0) 保留0位小数 2.0000

  • RAND()

介于 0.0(含)和 1.0(不含)之间的伪随机双精度值

  • RAND(integer)

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

  • UUID()

返回 UUID(通用唯一标识符)字符串(例如,“3d3c68f7-f608-473f-b60c-b0c44ad4cc4e”)。UUID 是使用加密强的伪随机数生成器生成的。

  • BIN(integer)

以二进制格式返回整数的字符串表示形式。如果整数为 NULL,则返回NULL。例如,BIN(4)返回“100”并BIN(12)返回“1100”

  • HEX(numeric 或 string)

以十六进制格式返回整数数值或字符串的字符串表示形式

4.字符串函数

  • string1 || string2  --拼接

例如:select 'abc' || 'def'; 返回abcdef

  • CHAR_LENGTH(string)  --字符个数

例如:select CHAR_LENGTH('abcdef'); 返回 6 

  • UPPER(string) --转大写

例如:select UPPER('aBc'); 返回 ABC

  • LOWER(string) --转小写

例如:select LOWER('aBc'); 返回abc

  • POSITION(string1 IN string2) --字串位置

例如:select POSITION('ab' in 'cdabcds'); 返回3

  • TRIM([ BOTH | LEADING | TRAILING ] string1 FROM string2) --默认从两边去除第一个

例如:select TRIM('  abc    ' from '  abcdefabc  '); 返回def 。select TRIM('  abc    '); 返回abc  两边的空格都被删除

  • LTRIM(string) --去除左边的空格
  • RTRIM(string) --去除右边的空格
  • REPEAT(string, integer) --重复字符串整数次

例如:select REPEAT('ab',3); 返回 ababab

  • REGEXP_REPLACE(string1, string2, string3) --将string1中符合正则表达式的 替换为 string3

例如:select REGEXP_REPLACE('foobar', 'oo|ar', ''); 返回 fb  

  • OVERLAY(string1 PLACING string2 FROM integer1 [ FOR integer2 ]) --将指定位置的字符串替换

例如:select OVERLAY('This is an old string' PLACING ' new' FROM 10 FOR 5);  返回 This is a new string  --不含FROM 10

  • SUBSTRING(string FROM integer1 [ FOR integer2 ]) --从指定位置截取指定长度的字串

例如:select SUBSTRING('This is an old string'FROM 10 FOR 5);  返回 n old   --含FROM 10

  • REPLACE(string1, string2, string3) --替换

例如:select REPLACE('ababab', 'abab', 'z');  用z替换abab 返回zab

  • REGEXP_EXTRACT(string1, string2[, integer]) --正则表达式匹配

例如:select REGEXP_EXTRACT('foothebar', 'foo(.*?)(bar)', 2); 返回 bar  匹配索引从 1 开始,0 表示匹配整个正则表达式

  • INITCAP(string) --第一个字符转换为大写,其余字符转换为小写

例如:select INITCAP('aBc');  返回 Abc

  • CONCAT(string1, string2,...) --拼接,如果任何参数为 NULL,则返回 NULL。
  • CONCAT_WS(string1, string2, string3,...) --拼接,第一个字符拼接符不为null则不为null

例如:select CONCAT_WS('~', 'AA', NULL, 'BB', '', 'CC');会报错 Illegal use of 'NULL'  --但官网说会跳过null
select CONCAT_WS('~', 'AA', 'BB', '', 'CC'); 返回“AA~BB~~CC”

  • LPAD(string1, integer, string2) --从string1左边填充string2到整数字符的长度。如果string1的长度小于integer,则返回string1缩短为整数字符

例如:

LPAD('hi',4,'??')返回“??hi”;LPAD('hi',1,'??')返回“h”。 
RPAD(string1, integer, string2) --从右边填充
RPAD('hi',4,'??')返回“hi??”,RPAD('hi',1,'??')返回“h”

  • FROM_BASE64(string) --从string返回 base64 解码的结果;如果字符串为 NULL,则返回NULL。

例如:FROM_BASE64('aGVsbG8gd29ybGQ=')返回“hello world”。
TO_BASE64(string) --从string返回 base64 编码的结果;如果字符串为 NULL,则返回NULL。
--TO_BASE64('hello world')返回“aGVsbG8gd29ybGQ=”。

  • ASCII(string) --     返回string的第一个字符的数值

例如:ascii('abc')返回 97 (a的ascii码),并ascii(CAST(NULL AS VARCHAR))返回 NULL。

  • INSTR(string1, string2)  --返回string2在string1 中第一次出现的位置

例如:select INSTR('bcab','a'); 返回3

  • LEFT(string, integer) --从左边截取

例如:select LEFT('abc2awe',2);   返回ab

  • RIGHT(string, integer) --从右边截取

例如:select RIGHT('abcawe',3); 返回awe 从右边截取3个

  • LOCATE(string1, string2[, integer]) --返回string2中string1在位置integer之后第一次出现的位置。如果未找到,则返回 0
  • REGEXP(string1, string2) --如果string1 的任何(可能为空)子字符串与 Java 正则表达式string2匹配,则返回 TRUE
  • REVERSE(string) --反转

例如:select REVERSE('abc'); 返回cba

  • SPLIT_INDEX(string1, string2, integer1) --用分割符分割后取第n个字串(从0开始)

例如:select SPLIT_INDEX('abc|def|ghi','|',2); 返回ghi

  • SUBSTR(string[, integer1[, integer2]]) --返回字符串的子字符串,从位置 integer1 开始,长度为 integer2(默认到末尾)

例如:select substr('abc',1,2); 返回ab

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手写Spring框架---MVC实现

目录 预备 自研框架MVC的实现 MVC架构草图&#xff1a; 大致流程 实现思路 自定义注解 JavaBean 请求的拦截-建立DispatcherServlet 责任链处理请求 RequestProcessor矩阵 Render矩阵 预备 在DispatcherServlet&#xff1a; 解析请求路径和请求方法依赖容器&#xf…

PostgreSQL 笔记

PostgreSQL 笔记 一、简介 这里主要是记录学习 PostgreSQL 常用操作命令&#xff0c;方便今后查阅&#xff01;&#xff01;&#xff01; PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS)&#xff0c;在灵活的BSD许可证下发行。 PostgreSQL 开发者把它念作 post-gress…

水库大坝安全监测系统是由什么组成的?

水库大坝是防洪抗灾的重要设施&#xff0c;它们的安全性直接关系到人民群众的生命财产安全。因此&#xff0c;水库大坝的安全监测必不可少。水库大坝安全监测系统是一种集成了数据采集、传输、处理和分析的技术平台&#xff0c;能够实时、准确地监测大坝的状态&#xff0c;及时…

一.《某三国》人物属性及其相关属性

人物属性 1.找一个可以操控变化的属性来找 比如血量.坐标或者五铢(绑定金币),这里我们用五铢找 五铢只要打一个怪就会加一点 2.我们直接搜变化即可搜到 五铢地址0AD64EAC 3.我们CE给地址下访问 4.这里我们最后找第一条访问 因为他是被改变的 或者你CE给地址下写入 5.然后我…

APSIM作物生长模拟模型:农田管理、土壤碳氮平衡、土壤水平衡、作物产量、物候发育光合生产、作物产量等

查看原文>>>基于R语言APSIM模型高级应用及批量模拟实践技术 目录 专题一、APSIM模型应用与R语言数据清洗 专题二、APSIM气象文件准备与R语言融合应用 专题三、APSIM模型的物候发育和光合生产模块 专题四、APSIM物质分配与产量模拟 专题五、APSIM土壤水平衡模块 …

前端浏览器缓存的好处和弊端以及如何处理弊端

浏览器缓存 好处&#xff1a; 减少冗余的数据传输&#xff0c;节省带宽。减轻服务器的请求压力&#xff0c;因为有缓存可以减少向服务器发送请求&#xff0c;资源从缓存中读取&#xff0c;加快客户端的访问速度。因为无需从服务器请求等待响应 缺点&#xff1a; 系统更新时…

使用docker-file 将springboot项目打成镜像,发布成容器服务

一 docker-file将jar包发布成容器服务 1.1 docker的安装 [rootlocalhost ~]# uname -r 3.10.0-862.el7.x86_64 [rootlocalhost ~]# yum install docker [rootlocalhost export]# systemctl start docker [rootlocalhost export]# docker -v Docker version 1.13.1, build…

CANoe测试车载以太网 Link up/Link down时间

系列文章目录 文章目录 系列文章目录前言一、CANoe配置Link up/Link down1、配置端口2、打开端口二、CANoe测试Link up /Link down时间1、打开Trace监听窗口2、CANoe查看Link up时间3、CANoe查看Link down时间前言 随着智能电动汽车的行业的发展,车载以太网的应用越来越广泛,…

学习react,复制一个civitai(C站)-更新3

更新内容 优化了一下加载速度 图片列表 初步更新了199张图片&#xff0c;大部分都有stable diffusion 的prompts。 可以直接复制到AI绘画里面使用。 先来看看效果图吧&#xff1a; 我还是挺喜欢这种砌砖流布局 技术点 同样使用了砌墙瀑布流布局:masonry js 安装方法 npm …

修复Google翻译小工具

修复Google翻译小工具 前言自己改的&#xff0c;小点声用 sudo vim /etc/hosts加上以下内容即可 nslookup google.cn |grep Address: |head -n 2|tail -n 1 |awk {print $2} translate.google.com

Golang 面向对象编程 概念

在Golang里面没有类的概念&#xff0c;它是使用结构体的东西来替代这个类的概念。 //张老太养了2只猫猫&#xff1a;一只名字叫小白&#xff0c;今年3岁&#xff0c;白色。还有一只叫小花&#xff0c;今年8岁&#xff0c;花色。 请编写一个程序&#xff0c;当用户输入小猫的名…

Redis第一天

Redis第一天 Redis基本数据结构数据结构字符串Redis链表字典跳跃表压缩列表 对象字符串对象列表对象哈希对象集合对象有序集合对象类型检查键回收 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络…

ios 启动页storyboard 使用记录

本文简单记录ios启动页storyboard 如何使用和注意事项。 xcode窗口简介 以xcode14为例&#xff0c;新建项目如下图&#xff0c;左边文件栏中的LaunchScreen.storyboard 为默认启动页布局。窗口中间部分是storyboard中的组件列表&#xff0c;右侧为预览&#xff0c;可以看到渲…

摩尔投票算法(Moore‘s Voting Algorithm)及例题

摩尔投票算法&#xff08;Moores Voting Algorithm&#xff09;及例题 摩尔投票算法简介摩尔投票算法算法思想摩尔投票算法经典题目169. 多数元素229. 多数元素 II6927. 合法分割的最小下标 上午打力扣第 354 场周赛最后十五分钟用摩尔投票算法直接秒了第三题。 摩尔投票算法简…

matlab数组中元素位置

%判断某个元素的位置 find(a2)就得到2所在的位置Matlab判断某数组中是否包含某元素及其位置

torch.nn.BCEWithLogitsLoss与torch.nn.BCELoss

torch.nn.BCEWithLogitsLoss相当于sigmoidtorch.nn.BCELoss。代码示例如下&#xff0c; import torch import torch.nn as nnBCEWithLogitsLoss nn.BCEWithLogitsLoss() BCELoss nn.BCELoss()x torch.randn((1,)) y torch.FloatTensor([1])Loss_BCEWithLogits BCEWithLog…

【图像处理】基于双目视觉的物体体积测量算法研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【QT/OpenCV】QT实现张正友相机标定

相机标定 01、相机标定02、OpenCV函数及其张正友标定法2.1、相机标定步骤2.2、相机标定相关函数2.2.1 提取角点--- findChessboardCorners2.2.2 亚像素角点提取1--- find4QuadCornerSubpix2.2.3 亚像素角点提取2--- cornerSubPix2.2.4 绘制内角点 --- drawChessboardCorners2.2…

Go 记录日志——log包

Golangs log模块主要提供了3类接口。分别是 “Print 、Panic 、Fatal ”&#xff0c;对每一类接口其提供了3中调用方式&#xff0c;分别是 "Xxxx 、 Xxxxln 、Xxxxf"&#xff0c;基本和fmt中的相关函数类似&#xff0c;下面是一个Print的示例&#xff1a; package m…

HDFS的数据存储

文章首发地址 HDFS的数据存储 HDFS的数据存储包括两块&#xff1a; 一块是HDFS内存存储另一块是HDFS异构存储 HDFS内存存储是一种十分特殊的存储方式&#xff0c;将会对集群数据的读写带来不小的性能提升&#xff0c;而HDFS异构存储则能帮助我们更加合理地把数据存到应该存的…