【flink sql】函数使用
创始人
2025-05-31 11:14:14

校验版本为flink 1.13.6
参考链接:fink sql内置函数

算数函数

余数: number1%number2
返回number1除以number2的余数

select 5%3;
-- 2
select 8%5;
-- 3

次方:power(number1,number2)
返回number1的number2次方

select power(2,3);
-- 8
select power(3,6);
-- 729

绝对值:abs(number)
返回number的绝对值

select abs(-6);
-- 6
select abs(9);
-- 9
select abs(0);
-- 0

开跟: sqrt(number)
返回number的根号

select sqrt(9);
-- 3
select sqrt(16);
-- 4

自然对数: ln(number)
返回number的自然对数

select ln(3);
-- 1.0986122886681098
select ln(27);
-- 3.295836866004329

10的对数: log10()
返回以10为底的对数

select log10(10);
-- 1
select log10(100);
-- 2

2的对数: log2()
返回以2为底的对数

select log2(4);
-- 2
select log2(16);
-- 4

指定数的对数: log(number1, number2)
返回以number1为底的对数

select log(2,4);
-- 2
select log(2,16);
-- 4

注: 如果只输入一个参数,则是以自然数为底的对数

自然常数e的次方: exp(number)
返回自然常数e的n次方

select exp(1);
-- 2.718281828459045
select exp(2);
-- 7.38905609893065

向上取整: ceil(number)
返回number的向上整数

select ceil(2.3);
-- 3
select ceil(-2.3);
-- -2

向下取整: floor
返回number的向下整数

select floor(2.3);
-- 2
select floor(-2.3);
-- -3

正弦值: sin(numner)
返回number的正弦值

select sin(30);
-- 

在这里插入图片描述
不应该是0.5的吗???没明白

反正弦值: asin(number)
返回数值的反正弦值

select asin(0.479425538604203);
-- 0.5

双曲正弦: sinh(number)
返回数值的双曲正弦

select sinh(30);
-- 5.343237290762231

余弦值: cos(number)
返回数值的余弦值

select cos(60);
-- -0.9524129804151563

正切值: tan(number)
返回数值的正切值

余切值: cot(number)

四舍五入: round(number,int n)
返回number精度为n的数值

select round(5.325, 2);
-- 5.33
select round(5.324, 2);
-- 5.32

如果没有第二个参数,则返回四舍五入的整数

随机数: rand()
返回0-1的随机数

rand_integer(int1, int2)
返回0-int1的随机数

数字截取: truncare(number1, int1)
返回截断为整数 2 位小数的数字。如果数字 1 或整数 2 为 NULL,则返回 NULL。如果 integer2 为 0,则结果没有小数点或小数部分。integer2 可以为负数,导致值小数点左侧的整数 2 位变为零。此函数还可以只传入一个 numeric1 参数,并且不能设置 Integer2 来使用。如果未设置 Integer2,则该函数将截断,就好像 Integer2 为 0 一样。例如 42.324.截断(2) 到 42.34。和 42.324.truncate() 到 42.0。

字符串函数

字符串拼接:string1 || string2
返回两个字符串拼接的结果

select 'fu' || 'yun';
-- fuyun

字符个数: char_length()
返回字符个数

select char_length('fuyun');
-- 5

字母转换为大写: upper()
返回大写字母

select upper('fuyun');
-- FUYUN

字母转换为小写: ````lower()```
返回小写字母

select lower('Fuyun');
-- fuyun

字符串位置: position(string1 in string2)
返回字符串1在字符串2的位置,位置从1开始,如果不在字符串2中,返回0,如果出现多次,返回第一次出现的位置

select position('u' in 'fuyun');
-- 2
select position('a' in 'fuyun');
-- 0

去除字符串两边的字符串字符串: trim(string1 from string2)
去除字符串2中两边包含字符串1,如果只有一个字符串参数,则去除字符串两边的空格。

select trim(' fu yun ');
-- fu yun
select trim('ab' from 'ab fu yun ab');
--  fu yun 

ltrim(string)去除左边的空格
rtrim(string)去除右边的空格

字符串重复次数: repeat(string, int)

select repeat('i am fuyun.', 2);
-- i am fuyun.i am fuyun.

字符串替换: regexp_replace(string1, string2, string3)
将字符串1中包含字符串2的用字符串3替换,支持正则表达式

select regexp_replace('fuyun', 'u|y', '');
-- fn

replace(string1, string2, string3)同样是替换,不支持正则表达式

overlay(string1 placing string2 from integer int1 [for integer2])
返回一个字符串,该字符串将位置 INT1 中的 INT2(默认情况下为 STRING2 的长度)替换为位置 INT1 中的 STRING2

select overlay('fuyun' placing 'nuyuf' from 3);
-- funuyuf
select overlay('fuyun' placing 'nuyuf' from 3 for 2);
-- funuyufn

未完待续…

相关内容

热门资讯

重磅消息.大头十三水.到底有挂... 重磅消息.大头十三水.到底有挂吗.[外卦神器下载]您好:大头十三水这款游戏可以开挂,确实是有挂的,需...
科普一下“聚友联盟有透视辅助软... 您好:聚友联盟这款游戏可以开挂,确实是有挂的,需要了解加客服微信【3636476】很多玩家在这款游戏...
玩家实测“宝宝浙江游戏有透视挂... 您好:宝宝浙江游戏这款游戏可以开挂,确实是有挂的,需要软件加微信【4770480】,很多玩家在宝宝浙...
盘点一款“中至麻将到底有挂吗”... 您好、中至麻将这款游戏可以开挂的,确实是有挂的,很多玩家在中至麻将这款游戏中打牌都会发现很多用户的牌...
玩家实测“中至麻将可以开挂吗”... 您好:中至麻将这款游戏可以开挂,确实是有挂的,需要软件加微信【69174242】,很多玩家在中至麻将...