关系运算符比拟两边的后果并返回一个后果值:TRUE 或 FALSE 值,这取决于两边的操作数之间的比拟是否无效,因为比拟的两边有可能呈现 null 值的状况。除了 is null,is not null 之外,null 在任何关系运算符中呈现后果都是 null 值。
- 等值比拟: =
语法:A=B
操作类型:所有根本类型
形容: 如果表达式 A 为 NULL,或者表达式 B 为 NULL,返回 NULL;如果表达式 A 与表达式 B 相等,则为 TRUE;否则为 FALSE
hive> select 1 from t_fin_demo where 1=1;
- 不等值比拟: <>
语法: A <> B 或!=
操作类型: 所有根本类型
形容: 如果表达式 A 为 NULL,或者表达式 B 为 NULL,返回 NULL;如果表达式 A 与表达式 B 不相等,则为 TRUE;否则为 FALSE
举例:
hive> select 1 from t_fin_demo where 1 <> 2;
- 小于比拟: <
语法: A < B
操作类型: 所有根本类型
形容: 如果表达式 A 为 NULL,或者表达式 B 为 NULL,返回 NULL;如果表达式 A 小于表达式 B,则为 TRUE;否则为 FALSE
举例:
hive> select 1 from t_fin_demo where 1 < 2;
- 小于等于比拟: <=
语法: A <= B
操作类型: 所有根本类型
形容: 如果表达式 A 为 NULL,或者表达式 B 为 NULL,返回 NULL;如果表达式 A 小于或者等于表达式 B,则为 TRUE;否则为 FALSE
举例:
hive> select 1 from t_fin_demo where 1 <= 1;
- 大于比拟: >
语法: A > B
操作类型: 所有根本类型
形容: 如果表达式 A 为 NULL,或者表达式 B 为 NULL,返回 NULL;如果表达式 A 大于表达式 B,则为 TRUE;否则为 FALSE
举例:
hive> select 1 from t_fin_demo where 2 > 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
- 空值判断: IS NULL
语法: A IS NULL
操作类型: 所有类型
形容: 如果表达式 A 的值为 NULL,则为 TRUE;否则为 FALSE
举例:
hive> select 1 from t_fin_demo where null is null;
- 非空判断: IS NOT NULL
语法: A IS NOT NULL
操作类型: 所有类型
形容: 如果表达式 A 的值为 NULL,则为 FALSE;否则为 TRUE
举例:
hive> select 1 from t_fin_demo where 1 is not null;
- 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%’;
- 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+$’;
- REGEXP 操作: REGEXP
语法: A REGEXP B
操作类型: strings
形容: 性能与 RLIKE 雷同
举例:
hive> select 1 from t_fin_demo where ‘footbar’ REGEXP ‘^f.*r$’;
关键词:大数据培训