hive 常用函数整理 1.关系运算


1. 等值比较: =

语法:A=B

操作类型:所有基本类型

描述: 如果表达式A与表达式B相等,则为TRUE;否则为FALSE

举例:

1
2
3
4

hive> select 1 from student where 1=1;

1

2. 不等值比较: <>

语法: A <> B

操作类型: 所有基本类型

描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A与表达式B不相等,则为TRUE;否则为FALSE

举例:

1
2
3
4
5
6
7
8
9
10
11
hive> select 1 from student  where 1 <> 2;

1

hive> select 1 from student where 1 <> null;

无结果

hive> select 1 from student where null <> 2;

无结果

3. 小于比较: <

语法: A < B

操作类型: 所有基本类型

描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A小于表达式B,则为TRUE;否则为FALSE

举例:

1
2
3
4
5
6
7
8
9
10
11
hive> select 1 from student where 1 < 2;

1

hive> select 1 from student where 1 < ”;

无结果

hive> select 1 from student where 2 < 1;

无结果

4. 小于等于比较: <=

语法: A <= B

操作类型: 所有基本类型

描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A小于或者等于表达式B,则为TRUE;否则为FALSE

举例:

1
2
3
hive> select 1 from student  where 1 <= 1;

1

5. 大于比较: >

语法: A > B

操作类型: 所有基本类型

描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A大于表达式B,则为TRUE;否则为FALSE

举例:

1
2
3
hive> select 1 from student  where 2 > 1;

1

6. 大于等于比较: >=

语法: A >= B

操作类型: 所有基本类型

描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A大于或者等于表达式B,则为TRUE;否则为FALSE

举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
hive> select 1 from student   where 1 >= 1;

1

–注意:String的比较要注意(常用的时间比较可以先to_date之后再比较)

hive> select * from student ;

OK

2011111209 00:00:00 2011111209

hive> select a,b,a<b,a>b,a=b from student ;

2011111209 00:00:00 2011111209 false true false

7. 空值判断: IS NULL

语法: A IS NULL

操作类型: 所有类型

描述: 如果表达式A的值为NULL,则为TRUE;否则为FALSE

举例:

1
2
3
hive> select 1 from student   where null is null;

1

8. 非空判断: IS NOT NULL

语法: A IS NOT NULL

操作类型: 所有类型

描述: 如果表达式A的值为NULL,则为FALSE;否则为TRUE

举例:

1
2
3
hive> select 1 from student   where 1 is not null;

1

9. LIKE比较: LIKE

语法: A LIKE B

操作类型: strings

描述: 如果字符串A或者字符串B为NULL,则返回NULL;

如果字符串A符合表达式B 的正则语法,则为TRUE;否则为FALSE。

B中字符”_”表示任意单个字符,而字符”%”表示任意数量的字符。

举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
hive> select 1 from student where ‘football’ like ‘foot%’;

1

hive> select 1 from student where ‘football’ like ‘foot____’;

1

–注意:否定比较时候用NOT A LIKE B

hive> select 1 from student where NOT ‘football’ like ‘fff%’;

1

10. JAVA的LIKE操作: RLIKE

语法: A RLIKE B

操作类型: strings

描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合JAVA正则表达式B的正则语法,则为TRUE;否则为FALSE。

举例:

1
2
3
4
5
6
7
8
9
10
hive> select 1 from student where ‘footbar’ rlike ‘^f.*r$’;
1

–注意:判断一个字符串是否全为数字:

hive> select 1 from student where123456’ rlike ‘^\\d+$’;

1

hive> select 1 from student where123456aa’ rlike ‘^\\d+$’;

11. REGEXP操作: REGEXP

语法: A REGEXP B

操作类型: strings

描述: 功能与RLIKE相同

举例:

1
2
hive> select 1 from student where ‘footbar’ REGEXP ‘^f.*r$’;
1

文章作者: hnbian
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hnbian !
评论
  目录