关于hive:Hive内置操作符之关系运算符

4次阅读

共计 2319 个字符,预计需要花费 6 分钟才能阅读完成。

关系运算符比拟两边的后果并返回一个后果值:TRUE 或 FALSE 值,这取决于两边的操作数之间的比拟是否无效,因为比拟的两边有可能呈现 null 值的状况。除了 is null,is not null 之外,null 在任何关系运算符中呈现后果都是 null 值。

  1. 等值比拟: =

语法:A=B

操作类型:所有根本类型

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

hive> select 1 from t_fin_demo where 1=1;

  1. 不等值比拟: <>

语法: A <> B  或!=

操作类型: 所有根本类型

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

举例:

hive> select 1 from t_fin_demo  where 1 <> 2;

  1. 小于比拟: <

语法: A < B

操作类型: 所有根本类型

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

举例:

hive> select 1 from t_fin_demo  where 1 < 2;

  1. 小于等于比拟: <=

语法: A <= B

操作类型: 所有根本类型

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

举例:

hive> select 1 from  t_fin_demo  where 1 <= 1;

  1. 大于比拟: >

语法: A > B

操作类型: 所有根本类型

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

举例:

hive> select 1 from t_fin_demo where 2 > 1;

  1. 大于等于比拟: >=

语法: A >= B

操作类型: 所有根本类型

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

举例:

hive> select 1 from t_fin_demo  where 1 >= 1;

留神:String 的比拟要留神 (罕用的工夫比拟能够先 to_date 之后再比拟)

hive> select * from t_fin_demo;

        OK

        2011111209 00:00:00     2011111209

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

        2011111209 00:00:00     2011111209      false   true    false

  1. 空值判断: IS NULL

语法: A IS NULL

操作类型: 所有类型

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

举例:

hive> select 1 from t_fin_demo where null is null;

  1. 非空判断: IS NOT NULL

语法: A IS NOT NULL

操作类型: 所有类型

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

举例:

hive> select 1 from  t_fin_demo where 1 is not null;

  1. LIKE 比拟, 只能应用简略正则匹配规定_%

详解讲解参考:​​Hive 中 rlike,like,not like 区别与应用详解

语法: A LIKE B,按字符逐个匹配的

操作类型: strings

形容: 如果字符串 A 或者字符串 B 为 NULL,则返回 NULL;如果字符串 A 合乎表达式 B   的正则语法,则为 TRUE;否则为 FALSE。LIKE 次要进行简略正则匹配。B 中字符”_”示意任意单个字符,而字符”%”示意任意数量的字符。

例如,’foobar’ LIKE ‘foo’ 的值为 FALSE,而 ’foobar’ LIKE ‘foo___’ 的值为 TRUE,‘foobar’ LIKE ‘foo%’ 的值为 TRUE。要本义 %,请应用 (% 匹配一个 % 字符)。如果数据蕴含分号,你想匹配它,则须要本义,像 ’a\;b’

举例:

hive> select 1 from t_fin_demo where ‘football’ like ‘foot%’;

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

留神:否定比拟时候用 NOT A LIKE B(应用 A NOT LIIKE B 也能够), 后果与 like 的后果时绝对的。

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

  1. RLIKE 比拟符,能够应用 JAVA 中全副正则表达式进行匹配

语法: A RLIKE B

操作类型: strings

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

举例:

hive> select 1 from t_fin_demo where ‘footbar’rlike ‘^f.*r$’;

留神:判断一个字符串是否全为数字:

hive>select 1 from t_fin_demo  where ‘123456’ rlike ‘^\d+$’;

hive> select 1 from t_fin_demo  where ‘123456aa’ rlike ‘^\d+$’;

  1. REGEXP 操作: REGEXP

语法: A REGEXP B

操作类型: strings

形容: 性能与 RLIKE 雷同

举例:

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

关键词:大数据培训

正文完
 0