1、URL解析函數
parse_url(url, partToExtract[, key])
解析URL字符串,partToExtract的選項包含[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO]
備註:partToExtract的選項必須是大寫!小寫不報錯但是數據爲NULL。
select parse_url('https://blog.csdn.net/iilegend/article/details/90316385','HOST') from dim_kpi;
select parse_url('https://blog.csdn.net/iilegend/article/details/90316385','PATH') from dim_kpi;
2、字符串連接函數,需要是 string型字段。
concat(str1,SEP,str2,SEP,str3,……) 和 concat_ws(SEP,str1,str2,str3, ……)
select concat('江蘇省','-','南京市','-','玄武區','-','徐莊軟件園');
select concat_ws('-','江蘇省','南京市','玄武區','徐莊軟件園');
這兩個語句的結果都是一樣的:
concat_ws的第一個參數是分隔符,第二個及其以後的參數都以第一個參數爲分隔符進行字符串連接。
concat 就是簡單將所有的參數進行字符串連接。
結論:當連接的內容(字段)多於2個的時候,concat_ws的優勢就顯現了,寫法簡單、方便。
3、時間的相關函數,詳細見上一篇博客。
4. regexp_replace(string A, string B, string C) 字符串替換函數,將字符串A 中的B 用 C 替換。
select regexp_replace('www.tuniu.com','tuniu','jd');
5、trim(string A) 刪除字符串兩邊的空格,中間的會保留。
相應的 ltrim(string A) 左邊刪除空格
,rtrim(string A) 右刪除空格
6、if 語句
第一個參數是判斷語句,結果爲true,那麼執行第二個參數,false就執行第三個參數
(就是簡單的if--else函數)
select if(length('aaa')==3,'是3','不是3')
7、nvl(T value, T default_value) 如果T is null ,返回默認值(注意是null纔行,空值返回的還是空值)
select nvl(null,'abcd')
8、split(str, regex) ,安裝規則截取字符串,返回數組(這個效率就比較慢了。)
select split('zhansan-lisi-wangwu','-')
select split('zhansan-lisi-wangwu','-')[0]
如果是特殊字段,需要轉義,如:
select split('大阪酒店|$新麗飯店','\\|\\$')[0];