1、字符串截取substr
presto语法:
substr(string, start, length) → varchar
如:
select substr('1599319787151',1,10)
substr(string, start) → varchar
如:
select substr('1599319787151',1)
而hive中:substr和substring都可以使用
2、字符串替换regexp_replace
presto语法:
regexp_replace(
string
,
pattern
,
replacement
) → varchar
如:select regexp_replace('{\\"over\\":\\"0\\",\\"seckill\\":\\"0\\"}','\\','')
3、字符串首次出现位置position(下标从1开始的)
presto语法:
position(substring IN string) → bigint 如:select position('aa' in '15993aa1978715aa1')
而hive中:select INSTR('15993aa1978715aa1','aa')
4、字符串连接concat
presto语法:concat(string1, ..., stringN) → varchar 如:select concat('kk','rrr')
而hive中除了concat,还有concat_ws按分隔符分割,如:select concat_ws("-","iii","rrr","kkk")
5、字符串分割split
presto语法:
split(string, delimiter) -> array(varchar) 如:SELECT split('a,b,c,d',',') 得到:[a, b, c, d]
split_part(string, delimiter, index) → varchar 如:SELECT split_part('a,b,c,d',',',2) 得到:b
String Functions and Operators — Presto 0.277 Documentation
https://prestodb.io/docs/current/functions/string.html
Regular Expression Functions — Presto 0.277 Documentation
https://prestodb.io/docs/current/functions/regexp.html?highlight=regexp_replace#id3
$
presto
= new
Presto
Client();
$data = $
presto
->querySql('select count(user_id) from xx.xx'); //库名.表名
var_dump($data);die();
select split_part('
中
国/广东/深圳', '/', cardinality(split('
中
国/广东/深圳', '/'))) as department_name;select substring_index('
中
国/广东/深圳', '/', -1) as department_name;
在
Presto
中
,可以使用 split_part
函数
按照指定的分隔符截取
字符串
。具体语法如下:split_part(string, delimiter, index)其
中
,string 表示要截取的
字符串
,delimiter 表示分隔符,index 表示要返回的子
字符串
在分隔符分割后的序号,序号从 1 开始。例如,如果要按照逗号 , 分隔
字符串
hello,world,
presto
并获取第...
lower(string) 返回
字符串
的小写格式
upper(string) 返回给定
字符串
的大写格式
lpad(string,size,padstring) 给定
字符串
的左填充
rpad(string,size,padstring) 给定
字符串
的右填充
ltrim(string) 从
字符串
中
删除字符左侧空格
rtrim(string) 从
字符串
中
删除字符右侧空格
trim(
都是sql,基本逻辑是一样的,常常出现问题是因为两边都
函数
不同导致
hive
sql没法在
presto
引擎下执行。
在我的使用场景
中
,一些
常见
的需要替换的
函数
,现记录下。
主要参考资料还是官方文档:
Presto
0.246 Documentation
时间转换相关的
函数
:
这里format的格式很奇怪,本来date_parse和date_format是一样的,
** 但是我这用到的format却不一样,你们用的是那个格式的format?**
--
presto
# 时间
字符串
转 时间戳
select to_u
568810800017635002 210100026066367206
568810800017635002 210100026070369019
568810800017635002 210100026038823395
568810800017635002 210100026038921817
568811800170738001 210100016048730468
568811800170738001
1、
字符串截取
substr
presto
语法:
substr(string, start, length) → varchar 如: select substr(‘1599319787151’,1,10)
substr(string, start) → varchar 如: select substr(‘1599319787151’,1)
而
hive
中
:substr和substring都可以
1、
字符串截取
substr
presto
:
substr(string, start, length) → varchar 如: select substr('1599319787151',1,10)
功效:返回
字符串
A从下标start位置开始,长度为len的
字符串
substr(string, start) → varchar 如: select substr('1599319787151',1)
功效:返回
字符串
A从下标start位置到结尾的
字符串
ps:对String来说,...