db2 空值转换函数_Hive常见函数的使用
hive函數
1.關系函數
等值比較?=語法:A=B?
如果表達式A和表達式B相等,則為TRUE;否則為FALSE不等值比較?<>
語法:A <> B
如果表達式A為null,或者表達式B為null,返回null;如果表達式A和表達式B不相等,則為true;否則為false小于比較?<
語法:A < B?
如果表達式A為null,或者表達式B為null,返回null;如果A小于表達式B,則為true;否則為false小于等于(<=)、大于(>)、大于等于(>=)同上
空值判斷?is null?
語法:A is null?
如果表達式A的值為null,則為true;否則為false非空判斷?is not null?
語法:A is not null?
如果表達式A的值為null,則為false;否則為truelike比較 like?
語法:A [not] like B?
如果字符串A?或者字符串B?為null,則返回null;如果字符串A符合表達式B的正則語法,則為true;否則為false。B中字符"_"表示任意單個字符,而字符“%”表示任意數量的字符注意:對特殊字符進行轉義時,注意要使用兩個反斜杠\ .?Java的like/regexp操作:rlike/regexp
語法:A rlike/regexp B?
如果字符串A或者字符串B為null,則返回null;如果字符串A符合Java正則表達式B的正則語法,則為TRUE;否則為false
例:select * from dwd.tb_dwd_test where client_name rlike/regexp '^W *'注意:通配符‘%’在rlike/regexp函數中,只能使用一個‘%’字符,''也只能匹配一個''字符,即'%'和'_'不是通配符,此時通配符為''*
2.日期函數
unix時間戳轉日期函數:from_unixtime
語法:from_unixtime(bigint unixtime[,string format])
轉化unix時間戳(從1970-01-01 00:00:00 UTC到指定時間的秒數)到當前時區的時間格式舉例:select from_unixtime(1323308943,'yyyyMMdd') from dual;?##返回值為20111208獲取當前unix時間戳函數?unix_timestamp
語法:unix_timestamp()
獲得當前的時間戳舉例:select unix_timestamp() from dual;?##返回值為1323309615?日期轉unix時間戳函數:unix_timestamp?
語法:unix_timestamp(string date)?
轉換格式為'yyyy-MM-dd HH:mm:ss' 的日期到unix時間戳。如果轉換失敗,則返回0。舉例:select unix_timestamp('2011-12-07 13:01:03') from dual;?##返回值為1323234063指定格式日期轉unix時間戳函數:unix_timestamp?
語法:unix_timestamp(string date,string pattern)
轉換pattern格式的日期到unix時間戳。如果轉化失敗,則返回0舉例:select unix_timestamp('20111207 13:01:03','yyyyMMdd HH:mm:ss') from dual;?##返回值為1323234063?日期時間轉日期函數:to_date?
語法:to_date(string timestamp)?
返回日期時間字段中的日期部分?select to_date('2011-12-08 10:03:01') from dual;?##返回值為2011-12-08日期轉年函數:year
語法:year(string date)
返回日期中的年日期轉月函數:month?
語法:month(string date)
返回日期中的月份日期轉天函數:day?
語法:day(string date)?
返回日期中的天日期轉小時函數?hour?
語法:hour(string date)?
返回日期中的小時日期轉分鐘函數?minute?
語法:minute(string date)?
返回日期中的分鐘?舉例:select minute('2011-12-08 10:03:01') from dual;?##返回值為3?日期轉秒函數?second?
語法:second(string date )?
返回日期中的秒日期轉周函數?weekofyear?
語法:weekofyear(string date)
返回日期在當前的周數日期比較函數?datediff?
語法:datediff(string enddate,string startdate)?
返回結束日期減去開始日期的天數舉例 :select datediff('2019-04-01','2019-04-02') from dual;## 返回值為1?日期增加函數?date_add
語法:date_add(string startdate,int days)?
返回開始日期startdate增加days天后的日期舉例:select date_add('2019-04-08',10) from dual;?## 返回值為2019-04-18日期減少函數?date_sub?
語法:date_sub(string strartdate,int days)?
返回開始時間startdate減少days天后的日期舉例:select date_sub('2019-04-18',10) from dual;?## 返回值:2019-04-08?
條件函數
if函數?
語法 :?if(boolean testCondition, T valueTrue, T valueFalseOrNull)
說明:當條件testCondition為TRUE時,返回valueTrue;否則返回valueFalseOrNull
舉例:select if(app_name = 'group',object_id,null) as deal_id from dw.topic_order where partition_pay_date = '2016-04-22'?等效于select case when app_name = 'group' then object_id else null end as deal_id from dw.topic_order where partition_pay_date = '2016-04-22'非空查找函數 coalesce?
語法:coalesce(t v1,t v2 ,...)?
說明:返回參數中的第一個非空值;如果所有值都為null,那么返回null
舉例:select coalesce(uuid,'') as uuid from dw.topic_order where partition_pay_date = '2016-04-22'?
等效于Oracle中的nvl函數有兩個參數時候,nvl函數是有這個函數延伸而來條件判斷函數 case?
語法:CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END?
說明:如果 a 等于 b ,那么返回 c ;如果 a 等于 d ,那么返回 e ;否則返回 f 注意:相對而言,case when是最全的條件函數,可以用于判斷多種條件;次之是if函數,屬于二分判斷;最后是coalesce函數,該函數只能對空值和非空進行判斷?注意:case when函數是有優先順序的,如果如果第一個條件成立,則返回第一個的值,此時若滿足第二個條件,則數值不發生改變
總結
以上是生活随笔為你收集整理的db2 空值转换函数_Hive常见函数的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蒸汽洗车为什么不流行?
- 下一篇: 万利达集成灶是几线品牌