351
阿里云
运算符__SQL_大数据计算服务-阿里云
操作符 | 说明 |
---|---|
A=B | 如果A或B为NULL,返回NULL;如果A等于B,返回TRUE,否则返回FALSE |
A<>B | 如果A或B为NULL,返回NULL;如果A不等于B,返回TRUE,否则返回FALSE |
A<B | 如果A或B为NULL,返回NULL;如果A小于B,返回TRUE,否则返回FALSE |
A<=B | 如果A或B为NULL,返回NULL;如果A小于等于B,返回TRUE,否则返回FALSE |
A>B | 如果A或B为NULL,返回NULL;如果A大于B,返回TRUE,否则返回FALSE |
A>=B | 如果A或B为NULL,返回NULL;如果A大于等于B,返回TRUE,否则返回FALSE |
A IS NULL | 如果A为NULL,返回TRUE,否则返回FALSE |
A IS NOT NULL | 如果A不为NULL,返回TRUE,否则返回FALSE |
A LIKE B | 如果A或B为NULL,返回NULL,A为字符串,B为要匹配的模式, 如果匹配,返回TRUE,否则返回FALSE。'%'匹配任意多个字符,'_'匹配单个字符。要匹配'%'或’_’需要用转义符表示’%’,’_’。
|
A RLIKE B | A是字符串,B是字符串常量正则表达式; 如果匹配成功,返回TRUE,否则返回FALSE; 如果B为空串会报错退出;如果A或B为NULL,返回NULL; |
A IN B | B是一个集合,如果A为NULL,返回NULL,如A在B中则返回TRUE,否则返回FALSE 若B仅有一个元素NULL,即A IN (NULL),则返回NULL。 若B含有NULL元素,将NULL视为B集合中其他元素的类型。 B必须是常数并且至少有一项,所有类型要一致 |
常见用法如下:
select * from user where user_id = '0001';
select * from user where user_name <> 'maggie';
select * from user where age > ‘50’;
select * from user where birth_day >= '1980-01-01 00:00:00';
select * from user where is_female is null;
select * from user where is_female is not null;
select * from user where user_id in (0001,0010);
select * from user where user_name like 'M%';
由于double值存在一定的精度差,因此,我们不建议直接使用等号=对两个double类型数据进行比较。用户可以使用两个double类型相减,而后取绝对值的方式判断。当绝对值足够小时,认为两个double数值相等,例如:
abs(0.9999999999 - 1.0000000000) < 0.000000001
-- 0.9999999999和1.0000000000为10位精度,而0.000000001为9位精度。
-- 此时可以认为0.9999999999和1.0000000000相等。
备注:
- Abs是ODPS提供的内建函数,意为取绝对值,详细可参考 ABS 。
- 通常情况下,ODPS的double类型能够保障14位有效数字。
算术操作符
操作符 | 说明 |
---|---|
A + B | 如果A或B为NULL,返回NULL;否则返回A + B的结果。 |
A – B | 如果A或B为NULL,返回NULL;否则返回A – B的结果。 |
A * B | 如果A或B为NULL,返回NULL;否则返回A * B的结果。 |
A / B | 如果A或B为NULL,返回NULL;否则返回A / B的结果。注:如果A和B为bigint类型,返回结果为double类型。 |
A % B | 如果A或B为NULL,返回NULL;否则返回A模B的结果。 |
+A | 仍然返回A。 |
-A | 如果A为NULL,返回NULL,否则返回-A。 |
常见用法如下:
select age+10, age-10, age%10, -age, age*age, age/10
from user;
备注
- 只有string,bigint,double才能参与算术运算,日期型和布尔型不允许参与运算。
- String类型在参与运算前会进行隐式类型转换到double类型。
- bigint和double共同参与计算时,会将bigint隐式转换为double再进行计算,返回结果为double类型。
- A和B都是bigint类型,进行A/B运算,返回结果为double类型;进行上述其他运算仍然返回bigint类型。
位操作符
操作符 | 说明 |
---|---|
A & B | 返回A与B进行按位与的结果。例如:1&2返回0,1&3返回1,NULL与任何值按位与都为NULL。 A和B必须为Bigint类型。 |
A | B | 返回A与B进行按位或的结果。例如:1 |2返回3,1 |3返回3,NULL与任何值按位或都为NULL。 A和B 必须为Bigint类型。 |
备注:
- 位运算符不支持隐式转换,只允许bigint类型。
逻辑操作符
操作符 说明
A and B TRUE and TRUE=TRUE
TRUE and FALSE=FALSE
FALSE and TRUE=FALSE
FALSE and NULL=FALSE
NULL and FALSE=FALSE
TRUE and NULL=NULL
NULL and TRUE=NULL
NULL and NULL=NULL
A or B TRUE or TRUE=TRUE
TRUE or FALSE=TRUE
FALSE or TRUE=TRUE
FALSE or NULL=NULL
NULL or FALSE=NULL
TRUE or NULL=TRUE
NULL or TRUE=TRUE
NULL or NULL=NULL
NOT A 如果A是NULL,返回NULL
如果A是TRUE,返回FALSE
如果A是FALSE,返回TRUE
备注
- 逻辑操作符只允许boolean类型参与运算,不支持隐式类型转换。
最后更新:2016-11-23 17:16:04
上一篇:
SQL 概要__SQL_大数据计算服务-阿里云
下一篇:
DDL语句__SQL_大数据计算服务-阿里云
查询应用加固结果接口__应用加固API_API手册_移动安全-阿里云
参数详情__附录_API使用手册_媒体转码-阿里云
访问日志__安全管理_快速入门_数据管理-阿里云
阿里云安全白皮书都有哪些重要内容?
周靖人:阿里云计算能力实现新突破,流计算2.0每秒峰值达千万QPS
Domains数据类型__数据类型_API 手册_CDN-阿里云
CDN设置多个源站IP的回源策略__运维技术分享_技术运维问题_CDN-阿里云
经典网络和VPC常见问题FAQ__常见问题_专有网络 VPC-阿里云
不同REGION ECS无法加入负载均衡实例__常见问题_负载均衡-阿里云
如何通过企业对公帐号打款认证完成企业实名认证__实名认证_帐号实名认证_会员账号&实名认证-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云