hive關係運算實例詳解

寫在前面:我是「且聽風吟」,目前是某上市遊戲公司的大數據開發工程師,熱愛大數據開源技術,喜歡分享自己的所學所悟,現階段正在從頭梳理大數據體系的知識,以後將會把時間重點放在Spark和Flink上面。

如果你也對大數據感興趣,希望在這個行業一展拳腳。歡迎關注我,我們一起努力,一起學習。博客地址:https://ropledata.blog.csdn.net

博客的名字來源於:且聽風吟,靜待花開。也符合我對技術的看法,想要真正掌握一門技術就需要厚積薄發的毅力,同時保持樂觀的心態。

你只管努力,剩下的交給時間!

圖片

1. 等值比較: =

     語法:A=B

     操作類型:所有基本類型

     描述: 如果表達式A與表達式B相等,則爲TRUE;否則爲FALSE

     舉例:
	 hive>select 1 from table_test where 1=1;

2. 不等值比較: <>

    語法: A <> B

	操作類型: 所有基本類型
	
	描述: 如果表達式A爲NULL,或者表達式B爲NULL,返回NULL;如果表達式A與表達式B不相等,則爲TRUE;否則爲FALSE
	
	舉例:
	
	hive> select1 from table_test where 1 <> 2;

3. 小於比較: <

    語法: A < B

	操作類型: 所有基本類型
	
	描述: 如果表達式A爲NULL,或者表達式B爲NULL,返回NULL;如果表達式A小於表達式B,則爲TRUE;否則爲FALSE
	
	舉例:
	
	hive> select1 from table_test where 1 < 2;

4. 小於等於比較: <=

	語法: A <= B
	
	操作類型: 所有基本類型
	
	描述: 如果表達式A爲NULL,或者表達式B爲NULL,返回NULL;如果表達式A小於或者等於表達式B,則爲TRUE;否則爲FALSE
	
	舉例:
	
	hive> select1 from table_test where 1 <= 1;

5. 大於比較: >

	語法: A > B
	
	操作類型: 所有基本類型
	
	描述: 如果表達式A爲NULL,或者表達式B爲NULL,返回NULL;如果表達式A大於表達式B,則爲TRUE;否則爲FALSE
	
	舉例:
	
	hive> select1 from table_test where 2 > 1;

6. 大於等於比較: >=

	語法: A >= B
	
	操作類型: 所有基本類型
	
	描述: 如果表達式A爲NULL,或者表達式B爲NULL,返回NULL;如果表達式A大於或者等於表達式B,則爲TRUE;否則爲FALSE
	
	舉例:
	
	hive> select1 from table_test where 1 >= 1;

	注意:String的比較要注意(常用的時間比較可以先to_date之後再比較)
	
	hive> select* from table_test ;
	
	OK
	
	201111120900:00:00     2011111209

	hive> selecta,b,a<b,a>b,a=b from table_test ;
	
	201111120900:00:00     2011111209      false  true    false

7. 空值判斷: IS NULL

	語法: A IS NULL
	
	操作類型: 所有類型
	
	描述: 如果表達式A的值爲NULL,則爲TRUE;否則爲FALSE
	
	舉例:
	
	hive> select1 from table_test where null is null;

8. 非空判斷: IS NOTNULL

	語法: A IS NOT NULL
	
	操作類型: 所有類型
	
	描述: 如果表達式A的值爲NULL,則爲FALSE;否則爲TRUE
	
	舉例:
	
	hive> select1 from table_test where 1 is not null;

9. LIKE比較: LIKE

	語法: A LIKE B
	
	操作類型: strings
	
	描述: 如果字符串A或者字符串B爲NULL,則返回NULL;如果字符串A符合表達式B   的正則語法,則爲TRUE;否則爲FALSE。B中字符”_”表示任意單個字符,而字符”%”表示任意數量的字符。
	
	舉例:
	
	hive> select1 from table_test where 'football' like 'foot%';
	
	
	
	hive> select1 from table_test where 'football' like 'foot____';



	注意:否定比較時候用NOT ALIKE B
	
	hive> select1 from table_test where NOT 'football' like 'fff%';

10. JAVA的LIKE操作: RLIKE

	語法: A RLIKE B
	
	操作類型: strings
	
	描述: 如果字符串A或者字符串B爲NULL,則返回NULL;如果字符串A符合JAVA正則表達式B的正則語法,則爲TRUE;否則爲FALSE。
	
	舉例:
	
	hive> select1 from table_test where 'footbar’ rlike '^f.*r$’;
	
	
	
	注意:判斷一個字符串是否全爲數字:
	
	hive>select 1from table_test where '123456' rlike '^\\d+$';
	
	
	
	hive> select1 from table_test where '123456aa' rlike '^\\d+$';

11. REGEXP操作: REGEXP

	語法: A REGEXP B
	
	操作類型: strings
	
	描述: 功能與RLIKE相同
	
	舉例:
	
	hive> select1 from table_test where 'footbar' REGEXP '^f.*r$';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章