激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫(kù)技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫(kù) - Oracle - oracle case when 語(yǔ)句的用法詳解

oracle case when 語(yǔ)句的用法詳解

2019-11-22 15:13oracle教程網(wǎng) Oracle

本篇文章是對(duì)oracle case when 語(yǔ)句的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

1. CASE WHEN 表達(dá)式有兩種形式

復(fù)制代碼代碼如下:


--簡(jiǎn)單Case函數(shù)  
CASE sex  
WHEN '1' THEN '男'  
WHEN '2' THEN '女'  
ELSE '其他' END  
--Case搜索函數(shù)  
CASE
WHEN sex = '1' THEN '男'  
WHEN sex = '2' THEN '女'  
ELSE '其他' END  


2. CASE WHEN 在語(yǔ)句中不同位置的用法
2.1 SELECT CASE WHEN 用法

復(fù)制代碼代碼如下:


SELECT   grade, COUNT (CASE WHEN sex = 1 THEN 1      /*sex 1為男生,2位女生*/
                       ELSE NULL
                       END) 男生數(shù),
                COUNT (CASE WHEN sex = 2 THEN 1
                       ELSE NULL
                       END) 女生數(shù)
    FROM students GROUP BY grade;


2.2 WHERE CASE WHEN 用法

復(fù)制代碼代碼如下:


SELECT T2.*, T1.*
   FROM T1, T2
  WHERE (CASE WHEN T2.COMPARE_TYPE = 'A' AND
                   T1.SOME_TYPE LIKE 'NOTHING%'
                THEN 1
              WHEN T2.COMPARE_TYPE != 'A' AND
                   T1.SOME_TYPE NOT LIKE 'NOTHING%'
                THEN 1
              ELSE 0
           END) = 1


2.3 GROUP BY CASE WHEN 用法

復(fù)制代碼代碼如下:


SELECT  
CASE WHEN salary <= 500 THEN '1'  
WHEN salary > 500 AND salary <= 600  THEN '2'  
WHEN salary > 600 AND salary <= 800  THEN '3'  
WHEN salary > 800 AND salary <= 1000 THEN '4'  
ELSE NULL END salary_class, -- 別名命名
COUNT(*)  
FROM    Table_A  
GROUP BY  
CASE WHEN salary <= 500 THEN '1'  
WHEN salary > 500 AND salary <= 600  THEN '2'  
WHEN salary > 600 AND salary <= 800  THEN '3'  
WHEN salary > 800 AND salary <= 1000 THEN '4'  
ELSE NULL END;  


3.關(guān)于IF-THEN-ELSE的其他實(shí)現(xiàn)
3.1 DECODE() 函數(shù)

復(fù)制代碼代碼如下:


select decode(sex, 'M', 'Male', 'F', 'Female', 'Unknown')
from   employees;


貌似只有Oracle提供該函數(shù),而且不支持ANSI SQL,語(yǔ)法上也沒CASE WHEN清晰,個(gè)人不推薦使用。
3.2 在WHERE中特殊實(shí)現(xiàn)

復(fù)制代碼代碼如下:


SELECT T2.*, T1.*
   FROM T1, T2
  WHERE (T2.COMPARE_TYPE = 'A' AND T1.SOME_TYPE LIKE 'NOTHING%')
         OR
        (T2.COMPARE_TYPE != 'A' AND T1.SOME_TYPE NOT LIKE 'NOTHING%')


這種方法也是在特殊情況下使用,要多注意邏輯,不要弄錯(cuò)。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 性欧美久久 | 国产中文99视频在线观看 | 99精品视频在线看 | 色综合一区二区 | 曰本三级日本三级日本三级 | 欧美特黄特色视频 | chinesexxxx极品少妇 | 毛片在哪看| 黄色三级三级三级 | 在线中文字幕播放 | 国产一区二区三区四区精 | 欧美成人三级视频 | 成人超碰 | 午夜精品在线视频 | 久久999精品 | 黄色av.com | 成人精品久久久 | 一区二区三区日韩精品 | 天天操天天看 | 久草在线视频看看 | 日本高清黄色片 | 偿还电影免费看 | 一区二区三区欧美精品 | 九色 在线| 中国av免费观看 | 九草av| 有色视频在线观看 | 日韩精品网站在线观看 | 久久久久久久久久久久久久国产 | 青热久思思 | 久久国产精品小视频 | 国产无遮挡一区二区三区毛片日本 | 九九热视频免费在线观看 | xxxx18韩国护士hd老师 | 国产精品久久久久久久久久尿 | 欧美福利视频一区二区 | 免费啪啪| 国产精品视频免费在线观看 | av在线直播观看 | 亚洲综合精品成人 | 免费黄色在线 |