Highgo <==> Doris
·
Highgo(PG)与Doris(Mysql)对应函数格式转换
1、年龄计算:
-- HighGo
EXTRACT(YEAR FROM age(FIN_OPR_REGISTER.reg_date,FIN_OPR_REGISTER.BIRTHDAY))
-- Doris
TIMESTAMPDIFF(YEAR,FIN_OPR_REGISTER.BIRTHDAY,FIN_OPR_REGISTER.reg_date)
2、日期转字符串
-- HighGo
to_char(P.OPERATETIME,'yyyy-mm-dd')
-- Doris
DATE_FORMAT(P.OPERATETIME, '%Y%m%d')
3、字符串转日期
-- HighGo
to_date('2025-03-10','yyyy-mm-dd')
-- Doris
str_to_date('2025-03-10 15:21:23', '%Y-%m-%d %H:%i:%s')
4、字符串分割函数
-- HighGo
SELECT distinct PERSONID,checkid,pname,visitdate,doctor,childmonth,
nextvisitdate,DEPTCODE,serviceother,PERSONCODE,
regexp_split_to_table(servicecode, ',') AS split_value1,
regexp_split_to_table(servicename, ',') AS split_value2
FROM gw_fds."CHILD_MEDICAL"
-- Doris
SELECT
distinct PERSONID,checkid,pname,visitdate,doctor,childmonth,nextvisitdate,DEPTCODE,serviceother,PERSONCODE,
split_value1,split_value2
FROM
ODS.gw_fds.CHILD_MEDICAL
LATERAL VIEW
explode(split_by_string(servicecode, ',')) a AS split_value1
LATERAL VIEW
explode(split_by_string(servicename, ',')) b AS split_value2
形如'1,2,3';'a,b,c' 一一对应为:'1 a','2 b','3 c'
SELECT
distinct grdabhid,dassjg,dassjg_mc,zjhm,split_value1, split_value2
FROM
ODS.jc_his.T_EHR_DWDA_RKXZL
LATERAL VIEW
posexplode(split_by_string(ylfyzflx, ',')) t AS pos, split_value1
LATERAL VIEW
posexplode(split_by_string(ylfyzflx_mc, ',')) b AS pos_mc, split_value2
where pos = pos_mc
5、regexp_replace函数
-- HighGo
regexp_replace('123abc123','[0-9]','','g')
-- Doris
regexp_replace('123abc123','[0-9]','')
6、位置函数
-- HighGo
position('a' in '123a123')
-- Doris
locate('a','123a123')
7、转义字符
-- HighGo
select 'It''s Gooddddd'
-- Doris
select 'It\'s Gooddddd'
更多推荐
所有评论(0)