赞
踩
每个关系运算符都返回 boolean 类型结果:
注意:判断字段值是否为
null
,不能用=
或者!=
,只能用col is null
或col is not null
--is null空值判断
select 1 from dual where 'itcast' is null; -- 返回0条数据
--is not null 非空值判断
select 1 from dual where 'itcast' is not null; -- 返回一条数据,且数值为1
like比较: _
表示任意单个字符, %
表示任意数量字符。
select 1 from dual where 'itcast' like 'it_'; -- 返回0条数据1
select 1 from dual where 'itcast' like 'it%'; -- 返回一条数据,且数值为
-- not...like 中的not 可以放在like前;也可以放在where后。下面两条语句等价:
select 1 from dual where 'itcast' not like 'hadoo_';
select 1 from dual where not 'itcast' like 'hadoo_';
rlike / regexp:确定字符串是否匹配正则表达式。
select 1 from dual where 'itcast' rlike '^i.*t$'; --- 返回1条数据,且值为1
select 1 from dual where '123456' rlike '^\\d+$'; --判断是否全为数字.返回1条数据,且值为1
select 1 from dual where '123456aa' rlike '^\\d+$'; -- 返回0条数据
-- 可以把rlike关键字换成regexp,效果是一样的。
select 1 from dual where 'itcast' regexp '^i.*t$';
每个算术运算符都返回 数:
直接在字段后进行四则运算:
select 1+1 from table1; -- 返回1条数据,且值为 2
select 1+1; -- hive3.0之后可以不写 from 表名
直接在字段前面加上 负号 ,可以将数变为相反数:
接下来重点介绍右边的。
div:取计算结果的整数部分,其实就是向下取整
%:取计算结果的余数
select 17 div 3; -- 返回一条数据,且值为 5
select 17 % 3; -- 返回一条数据,且值为 2
~:某数按位取反
&:两数进行 ’与‘ 逻辑操作
| :两数进行 ’或‘ 逻辑操作
^:两数进行 ’异或‘ 逻辑操作
--4转换二进制:0100 6转换二进制:0110
select 6 from dual; -- 返回一条数据
select 6 & 4 from dual; -- 返回一条数据,且值为 4
select 6 | 4 from dual; -- 返回一条数据,且值为 6
select 6 ^ 4 from dual; -- 返回一条数据,且值为 2
select 1 from dual where 3 > 1 and 2 > 1; -- 返回一条数据,且值为1
select 1 from dual where 3 > 1 or 2 != 2; -- 返回一条数据,且值为1
select 1 from dual where not 2 > 1; -- 返回0条数据
select 1 from dual where ! 2=1; -- 返回一条数据,且值为1
-- 在不在
select 1 from dual where 11 in(11,22,33); -- 返回一条数据,且值为1
select 1 from dual where 11 not in(22,33,44); -- 返回一条数据,且值为1
-- 存不存在:[NOT] EXISTS (subquery)
select A.* from A
where exists (select B.id from B where A.id = B.id);
语法:
case
when colName布尔表达式 then 值
when colName布尔表达式 then 值
....
else 值
end as colName_rename
功能:
细节:如果有多个when..then...
,如果一条记录满足第一个case when就不会再去执行后面的case when。和java的if-else if-else一样,当做java使用就可以了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。