数仓的常用函数
数仓的常用函数
### 当前日期
select current_date()
### 当前时间
select current_timestamp()
### 日期增加函数
select date_add(current_date(),3) from dws_study.user_video_log_new_daily limit 10
### 日期减少函数
select date_sub(current_date(),10) from dws_study.user_video_log_new_daily limit 10
### 字符串解析成日期函数
select date_format(current_timestamp(),'yyyy--MM-dd HH:mm:ss') from dws_study.user_video_log_new_daily limit 10
### if函数
select if(1=1,100,200) from dws_study.user_video_log_new_daily limit 1 -----100 T返回100 F返回200
### 非空函数coalesce 返回第一个非空值,若都为null,则返回null
select coalesce(null,1,2) from dws_study.user_video_log_new_daily limit 1
### 条件判断case
### 1 如果a等于b 返回c ;如果a等于d,返回e,否则返回f
### 2 如果a为T返回b ;如果c为T返回d 否则返回e
select
case 100
when 50 then 'c'
when 100 then 'e'
else' f' end
from dws_study.user_video_log_new_daily limit 1
select
case when 1=2 then '0'
when 2=2 then 'I'
else 'U' end
from dws_study.user_video_log_new_daily limit 1
### 正则表达替换函数 regexp_replace
select
regexp_replace('foobar','oo|ar','')
from
dws_study.user_video_log_new_daily limit 1
### 正则表达解析函数哇
##### 将字符串分为几部分 按照下表分段取值
select
regexp_extract('abcddefg..0','abc(.*?)(..0)',1)
from
dws_study.user_video_log_new_daily limit 1
### split()分割函数
select
split('asffghjfg','f')
from
dws_study.user_video_log_new_daily limit 1
### cast() 类型转化函数
select
cast('001' as bigint)
from
dws_study.user_video_log_new_daily limit 1
### get_json_object() 解析函数
SELECT
get_json_object("{'name': 'xiaowang', 'age': 18}", '$.name') AS name,
get_json_object("{'name': 'xiaowang', 'age': 18}", '$.age') AS age
FROM dws_study.user_video_log_new_daily
LIMIT 1;
嗨~今天你暴躁了吗?
~~~关注我,更多精彩内容带给你,关注私聊带走绝密知识~~~