關係運算
- like A like B 如果字串A符合表示式B 的正則語法,則為TRUE,如果字串A或者字串B為NULL
select 'football' like 'foot%';->true
複製程式碼
- rlike A RLIKE B 如果字串A符合JAVA正規表示式B的正則語法,則為TRUE
- REGEXP 功能與RLIKE相同
數學函式
- round 四捨五入 round(DOUBLE a, INT d) d表示要保留小數位數
select ceil(45.926,2) ->46.93
複製程式碼
- ceil 向上取整
select ceil(45.926) ->46
複製程式碼
- floor 向下取整
select ceil(45.926) ->45
- round 取隨機數
複製程式碼
字串函式
- lower 小寫字母
- upper 大寫字母
- lengh 長度
select length('你好')->2
- reverse 字串反轉
- concat 字串拼接
複製程式碼
select concat('程式猿',' 你好')->程式猿你好
- concat_ws 帶分隔符字串連線函式
concat_ws(string SEP, string A, string B…)
SEP表示各個字串間的分隔符
複製程式碼
- substr 字串子串
select substr('程式猿你好',4,2)->你好
複製程式碼
- trim 去掉兩端空格
- lpad 左填充 lpad(String a,int b,String c) b表示填充後的總長度
lpad('程式猿你好', 10, *)->*****程式猿你好
複製程式碼
- rpad 右填充
rpad('程式猿你好', 10, *)->程式猿你好*****
複製程式碼
- split 分隔字串函式
按照pat字串分割str,會返回分割後的字串陣列
select split('abtcdtef','t')->["ab","cd","ef"]
複製程式碼
- repeat 重複字串函式
repeat(string str, int n) 返回重複n次後的str字串
select repeat('abc',2)->abcabc
複製程式碼
收集函式
- size 求map或者array的長度
轉換函式
- cast
select cast(1 as float)->1.0
複製程式碼
日期函式
- unix_timestamp 獲得當前時區的UNIX時間戳
- to_date 轉日期函式 to_date(string time)
- year 日期轉年函式year(string date)
- month 日期轉月函式
- day 日期轉天函式
- hour 日期轉小時函式
- minute 日期轉分鐘函式
- weekofyear 日期轉周函式
select weekofyear('2011-12-08')->49
複製程式碼
- datediff 日期比較函式
atediff(string enddate, string startdate)
select datediff('2012-12-08','2012-05-09')->213
複製程式碼
-
date_sub 日期減少函式
-
date_add 日期增加函式
date_add(string startdate, int days) select date_add('2012-12-08',10)->2012-12-18
-
from_unixtime UNIX時間戳轉日期函式
select from_unixtime(1323308943,'yyyyMMdd')-> 20111208
複製程式碼
條件函式
- if 函式
if(boolean testCondition, T valueTrue, T valueFalseOrNull)
select if(1=2,100,200)->200
複製程式碼
- coalesce 非空查詢,返回引數中第一個非空值
COALESCE(T v1, T v2, …)
select COALESCE(null,'100','50′)->100
複製程式碼
-
case 條件判斷函式
CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END 如果a等於b,那麼返回c;如果a等於d,那麼返回e;否則返回f CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END
如果a為TRUE,則返回b;如果c為TRUE,則返回d;否則返回e
複雜型別
- array型別訪問: A[n]
- map型別訪問: M[key]
- struct型別訪問: S.x
- Map型別構建: map (key1, value1, key2, value2, …)
- Struct型別構建 :struct(val1, val2, val3, …)
- array型別構建: array(val1, val2, …)
集合統計函式
- count:個數統計
- sum :總和統計
- avg:平均值統計
- min:最小值統計
- max:組大值統計
- percentile:中位數統計