hive中常用substr函式擷取字串匹配演示

2021-12-30 13:04:34 字數 1090 閱讀 6670

開發中,經常進行模糊查詢或者進行擷取字串進行模糊匹配,常用的就是substr函式或者substring函式。

使用語法: substr(string a, int start),substring(string a, int start) 兩者用法一樣,兩個引數

返回值: string

說明:返回字串a從start位置到結尾的字串

舉例演示:

hive> select substr('abcde',3) fromlxw_dual;

cdehive> select substring('abcde',3) fromlxw_dual;

cdehive> select substr('abcde',-1) from lxw_dual; (和oracle相同,負數從最後一位開始擷取)

ehive> select substr('abcde',1,2) 和selectsubstr('abcde',0,2)結果一樣ab,預設都是從第一位開始取.語法: substr(string a, int start, int len),substring(string a, intstart, int len),用法一樣,三個引數

返回值: string

說明:返回字串a從start位置開始,長度為len的字串

舉例演示:

hive> select substr('abcde',3,2) fromlxw_dual;

cdhive> select substring('abcde',3,2) fromlxw_dual;

cdhive>select substring('abcde',-2,2) fromlxw_dual;

de注意,實際開發中,比如查詢表中dataforjy欄位記錄後5位包含#的記錄條數?同樣可以用substr進行後5位擷取,然後用like或者rlike進行匹配(具體參考我的另外一篇部落格),但是如果出現dataforjy欄位部分記錄的長度不足五位的情況,怎麼處理?

hive > select substr('abcde',6) (結果是空值)

hive中常用的函式

獲取當前時間戳 hive select unix timestamp ok1605712071獲取指定日期時間戳 hive select unix timestamp 2020 01 01 00 00 00 ok1577836800獲取指定格式的時間戳 hive select unix timest...

整理hive中常用函式

1.unix timestamp 返回當前或指定時間的時間戳 select unix timestamp select unix timestamp 2008 08 08 08 08 08 2.from unixtime 將時間戳轉為日期格式 select from unixtime 1218182...

Hive中常用SQL梳理

注意 hive子查詢需要起別名!先groupby後取第一條 方法1 遇到這麼乙個需求,輸入資料為乙個id對應多個name,要求輸出資料為id是唯一的,name隨便取乙個就可以。select a.from select row number over partition by id order by ...