hive 中的 关系运算 不等于-程序员宅基地

技术标签: java  数据库  大数据  

1. 等值比较: =

         语法:A=B

         操作类型:所有基本类型

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

         举例:

         hive>select 1 from lxw_dual where 1=1;

         1

2. 不等值比较: <>

         语法: A <> B

操作类型: 所有基本类型

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

举例:

hive> select1 from lxw_dual where 1 <> 2;

1


注意

由于在通常得SQL写法中不等于也可以这样写 != 。但在hive中,当一个string类型和int类型比较的时候会出现问题。


数字和数字类型用 可以用 != 
比较:

hive> select * from t_pvorder where 1 != 1 and start_date=20130306 limit 1;                   
OK
Time taken: 0.079 seconds


带引号的数字和数字类型 可以用!= 比较: 

hive> select * from t_pvorder where "136258563267" != 0 and start_date=20130306 limit 1;    
OK
1323499396180741        13437046875509ec        0       102213  100002  01      -1      2013-03-06 20:59:07     1362574747440zW4        20130306
Time taken: 0.169 seconds


带引号的数字和带引号数字类型 可以用 != 比较:

hive> select * from t_pvorder where "136258563267" != "0" and start_date=20130306 limit 1;
OK
1323499396180741        13437046875509ec        0       102213  100002  01      -1      2013-03-06 20:59:07     1362574747440zW4        20130306
Time taken: 0.129 seconds


字符串和数字类型 不可以用 !=比较:

hive> select * from t_pvorder where 0 != "1362585632671uFu" and start_date=20130306 limit 1;
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
//发起mapreduce   查不出结果
....


字符串和数字类型 不可以用 <> 比较:

hive> select * from t_pvorder where 0 <> "1362585632671uFu" and start_date=20130306 limit 1;
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
//发起mapreduce   查不出结果....


总之,用不等于比较的时候两者的字段类型尽量保持一致。


3. 小于比较: <

         语法: A < B

操作类型: 所有基本类型

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

举例:

hive> select1 from lxw_dual where 1 < 2;

1

 

4. 小于等于比较: <=

语法: A <= B

操作类型: 所有基本类型

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

举例:

hive> select1 from lxw_dual where 1 <= 1;

1

5. 大于比较: >

语法: A > B

操作类型: 所有基本类型

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

举例:

hive> select1 from lxw_dual where 2 > 1;

1

 

6. 大于等于比较: >=

语法: A >= B

操作类型: 所有基本类型

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

举例:

hive> select1 from lxw_dual where 1 >= 1;

1

 

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

hive> select* from lxw_dual;

OK

201111120900:00:00     2011111209

 

hive> selecta,b,a<b,a>b,a=b from lxw_dual;

201111120900:00:00     2011111209      false  true    false

 

7. 空值判断: IS NULL

语法: A IS NULL

操作类型: 所有类型

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

举例:

hive> select1 from lxw_dual where null is null;

1

 

8. 非空判断: IS NOTNULL

语法: A IS NOT NULL

操作类型: 所有类型

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

举例:

hive> select1 from lxw_dual where 1 is not null;

1

 

9. LIKE比较: LIKE

语法: A LIKE B

操作类型: strings

描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B   的正则语法,则为TRUE;否则为FALSE。B中字符”_”表示任意单个字符,而字符”%”表示任意数量的字符。

举例:

hive> select1 from lxw_dual where 'football' like 'foot%';

1

hive> select1 from lxw_dual where 'football' like 'foot____';

1

注意:否定比较时候用NOT ALIKE B

hive> select1 from lxw_dual where NOT 'football' like 'fff%';

1

 

10. JAVA的LIKE操作: RLIKE

语法: A RLIKE B

操作类型: strings

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

举例:

hive> select1 from lxw_dual where 'footbar’ rlike '^f.*r$’;

1

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

hive>select 1from lxw_dual where '123456' rlike '^\\d+$';

1

hive> select1 from lxw_dual where '123456aa' rlike '^\\d+$';

 

11. REGEXP操作: REGEXP

语法: A REGEXP B

操作类型: strings

描述: 功能与RLIKE相同

举例:

hive> select1 from lxw_dual where 'footbar' REGEXP '^f.*r$';

1











本文转自 yntmdr 51CTO博客,原文链接:http://blog.51cto.com/yntmdr/1828092,如需转载请自行联系原作者
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33806300/article/details/89829046

智能推荐

tensorboard在浏览器中打开问题_tensorboard换了地址但是浏览器显示的还是之前的-程序员宅基地

文章浏览阅读5.1k次,点赞4次,收藏12次。问题描述:在命令行切入到logs文件所在的盘后,输入tensorboard --logdir=D:\PycharmProjects\learn_tf\logs,出现如下命令:D:\&amp;amp;gt;tensorboard --logdir=D:\PycharmProjects\learn_tf\logsTensorBoard 1.12.1 at http://HN-75P35Q2:6006 (Pres..._tensorboard换了地址但是浏览器显示的还是之前的

2021-09-24 网安实验-音频隐写-SCTF真题之Misc200_启明 misc steg200 练习题-程序员宅基地

文章浏览阅读5.2w次。一、BinwalkBinWalk是一个固件的分析工具,旨在协助研究人员对固件进行分析,提取及逆向工程用处。简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,还重要一点的是可以轻松地扩展。最简单的使用方法很直接,提供文件路径和文件名即可。BinWalk常用于识别任意二进制数据块中所包含的其他类型的文件数据。二、MP3StegoMP3Stego可以把任何敏感数据压缩隐藏到MP3音乐文件中,数据首先被进行压缩和加密处理,然后将其隐藏到MP3音乐流数据中。三、ZIP伪加密ZIP伪加密曾流行_启明 misc steg200 练习题

AYIT2017暑假集训第二周周三赛 A - Find The Multiple POJ - 1426-程序员宅基地

文章浏览阅读228次。Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there_a - find the multiple

反序列化漏洞实例_rest 接口 反序列化漏洞 的例子-程序员宅基地

文章浏览阅读892次。反序列化漏洞实例网页源码测试过程网页源码index.php<!DOCTYPE html><body><a href="../index.php">их╗п</a></body></html><?php$user = $_GET["user"];$file = $_GET["file"];$pass = $_GET["pass"];if(isset($user)&&(file_get_conte_rest 接口 反序列化漏洞 的例子

TreeMap详细介绍(源码解析)和使用示例_report.html treemap面板-程序员宅基地

文章浏览阅读706次。转自:https://www.cnblogs.com/skywang12345/p/3310928.html概要这一章,我们对TreeMap进行学习。我们先对TreeMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用TreeMap。内容包括:第1部分 TreeMap介绍第2部分 TreeMap数据结构第3部分 TreeMap源码解析(基于JDK1.6.0_45)第4部分 T..._report.html treemap面板

c++调用matlab函数_c++ 调用matlab struct-程序员宅基地

文章浏览阅读505次。第一步:在MATLAB中的命令行窗口中输入mex -setup第二步:点击界面中的“mex -setup C++”,点击Microsoft Visual C++ 2015 Professional第三步:对function进行编译了,编译的命令为:mcc -W cpplib:pc -T link:lib rectify注意:rectify为函数名。这条命令中pc表示的是想要生成的库的名称,可..._c++ 调用matlab struct

随便推点

php表单yii2,Yii2创建表单(ActiveForm)方法-程序员宅基地

文章浏览阅读133次。Yii2创建表单(ActiveForm)方法Yii2创建表单(ActiveForm)的方法,结合实例形式详细分析了Yii创建表单的详细步骤及相关函数与属性的使用技巧,需要的朋友可以参考下.由于表单涉及到一些验证方面的信息,属性设置又比较多、比较复杂,所以哪里有什么不正确的地方请留言指点目录表单的生成表单中的方法ActiveForm::begin()方法ActiveForm::end()方法getC..._$form = activeform::begin(['id' => 'login-form']);

Python数据分析-pandas进阶-2-DataFrame进阶_pandas describe多列-程序员宅基地

文章浏览阅读1.2k次。一、统计分析1.描述性统计min 最小值 max 最大值 mean 平均值 median 中位数 std 标准差 var 方差 cov 协方差 sem 标准误差 mode 众数 skew 偏度 kurt 峰度 quantile 四分位数 count 非空值数目 mad 平均绝对离差 import numpy as npimport pandas as pd_pandas describe多列

从零开始学SpringBoot2.x(10-如何在SpringBoot中使用JPA操作数据库)_springboot 2 jpa physicalnamingstrategystandardimp-程序员宅基地

文章浏览阅读274次。在我们日常开发中,操作数据库是必不可少的工作。在使用SpringBoot之前,我们操作数据库经常会用到Hibernate、Mybatis等ORM框架,那么在SpringBoot应用中如何操作数据库呢?下面我就与大家简单分享一下如何使用JPA。1、什么是JPAJPA并不是一个框架,它是Sun公司所定义的ORM规范,Hibernate、Toplink、OpenJPA等ORM框架针对JPA..._springboot 2 jpa physicalnamingstrategystandardimpl

html 音乐切换不暂停,web-audio-api可视化音乐播放器,实现暂停切换歌曲功能,粉色系专场~...-程序员宅基地

文章浏览阅读505次。可视化的音乐播放器,可戳我观看效果了解Web-Audio-Api基础知识标签是HTML5的新标签,通过添加src属性实现音乐播放。AudioContext是音频播放环境,原理与canvas的绘制环境类似,都是需要创建环境上下文,通过上下文的调用相关的创建音频节点,控制音频流播放暂停操作等操作,这一些操作都需要发生在这个环境之中。try{var audioCtx = new (window.Audi..._可视化web音乐播放器

Springboot项目动态加载配置文件及刷新bean_springboot更新bean-程序员宅基地

文章浏览阅读6.6k次,点赞2次,收藏14次。需求系统遇到这样一个需求,线上环境在配置文件发生变动时,可以不用经过重启,通过刷新接口的方式得到配置文件的加载,主要目的是为了迅速部署,避免因手动重启,处理不及时导致积压的问题问题1.程序中如何获取修改后的配置2.某些配置值是应用在bean里面的,在程序初始化的时候已经注入,如何修改这一部分。例如,程序是分主备环境的,kafka consumer的groupid或topic根据环境不同而改变,那么consumer若写在bean中,修改配置文件,要一并更新到bean中//示例代码,KafkaCon_springboot更新bean

事件循环、宏任务、微任务_事件队列 宏任务微任务等-程序员宅基地

文章浏览阅读140次。什么是事件循环?在JS中我们经常会需要“同时”进行多项工作,例如:定时器、事件、异步数据交互等,那么JS是如何管理这些任务的,又是如何确定他们的执行顺序的?首先,所有的语言都拥有并发模型的概念,也就是说多个任务如何同时执行,大部分语言支持多线程执行,JS拥有所有语言中最简单的并发模型——JS使用单线程的"事件循环(Event Loop)"来处理多个任务的执行简单来说,js的事件循环,每次读取一个任务,然后执行这个任务,执行完再继续获取下一个,如果暂时没有任务,就暂停执行,等待下一个任务到来;如果_事件队列 宏任务微任务等

推荐文章

热门文章

相关标签