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-阿裏雲