日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)OceanBase教程:OceanBase條件表達(dá)式

條件表達(dá)式(Case Expression)允許用戶在不調(diào)用存儲(chǔ)過程的情況下,在 SQL 語句中使用 IF ... THEN ... ELSE 邏輯。

語法


CASE { simple_case_expression
     | searched_case_expression
     }
     [ ELSE else_expr ]
     END

其中簡(jiǎn)單條件表達(dá)式中 simple_case_expression 的語法為:


expr
  { WHEN comparison_expr THEN return_expr }...

搜索條件表達(dá)式 searched_case_expression 的語法為:


{ WHEN condition THEN return_expr }...

使用規(guī)則

條件的驗(yàn)證

在一個(gè)簡(jiǎn)單條件表達(dá)式中,OceanBase 數(shù)據(jù)庫會(huì)以 expr 為基準(zhǔn),在 WHEN ... THEN 中搜尋第一個(gè)與之等值的 comparison_expr,并返回相應(yīng)的 return_expr。如果沒有 WHEN ... THEN 滿足此情形,并且 ELSE 子句存在,那么 OceanBase 數(shù)據(jù)庫會(huì)返回 else_expr。否則,OceanBase 會(huì)返回 NULL。

在搜索條件表達(dá)式中,OceanBase 會(huì)自左向右搜索直到 condition 條件成立,然后返回 return_expr。如果所有條件都不成立,且 ELSE 子句存在,則數(shù)據(jù)庫返回 else_expr。否則,數(shù)據(jù)庫會(huì)返回 NULL。

條件的計(jì)算

OceanBase 數(shù)據(jù)庫使用短路計(jì)算法則。對(duì)于簡(jiǎn)單條件表達(dá)式,數(shù)據(jù)庫僅會(huì)在與 expr 比較之前計(jì)算 comparison_expr 的值,而不是在與 expr 比較之前就將計(jì)算所有 comparison_expr 的值。因此,如果前一個(gè) comparison_expr 與 expr 相等,OceanBase 將不會(huì)計(jì)算下一個(gè) comparison_expr 的值。對(duì)于搜索條件表達(dá)式,數(shù)據(jù)庫將會(huì)串行計(jì)算每個(gè)條件(Condition)是否為真,如果前一個(gè)條件(Condition)為真,OceanBase 將不會(huì)計(jì)算下一個(gè)條件。

數(shù)據(jù)類型

對(duì)于簡(jiǎn)單條件表達(dá)式,expr 和所有的 comparison_expr 的值的數(shù)據(jù)類型必須相同(如 CHAR、VARCHAR2 和 NCHAR; NVARCHAR2、NUMBER 和 BINARY_FLOAT,或 BINARY_DOUBLE),或者都是數(shù)值類型。如果所有的返回表達(dá)式都是數(shù)值類型,則 OceanBase 會(huì)選擇最高優(yōu)先級(jí)的數(shù)據(jù)類型,顯式地將其它參數(shù)轉(zhuǎn)化為此數(shù)據(jù)類型,并返回這個(gè)數(shù)據(jù)類型。

對(duì)于簡(jiǎn)單條件表達(dá)式和搜索條件表達(dá)式,所有的 return_exprs 的數(shù)據(jù)類型必須相同(如 CHARVARCHAR2NCHAR;NVARCHAR2、NUMBER 和 BINARY_FLOAT;BINARY_DOUBLE),或者都是數(shù)值類型。如果所有的返回表達(dá)式都是數(shù)值類型,則 OceanBase 會(huì)選擇最高優(yōu)先級(jí)的數(shù)據(jù)類型,顯式地將其它參數(shù)轉(zhuǎn)化為此數(shù)據(jù)類型,并返回這個(gè)數(shù)據(jù)類型。

示例


SELECT cust_last_name,
    CASE credit_limit
    WHEN 100 THEN 'Low'
    WHEN 5000 THEN 'High'
    ELSE 'Medium' END AS credit
FROM customer
ORDER BY cust_last_name, credit;

以下是搜索條件表達(dá)式的示例:


SELECT AVG(CASE WHEN e.salary > 2000 THEN e.salary
          ELSE 2000 END) "Average Salary" FROM employee e;

分享題目:創(chuàng)新互聯(lián)OceanBase教程:OceanBase條件表達(dá)式
轉(zhuǎn)載來源:http://www.5511xx.com/article/djhcghh.html