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