激情久久久_欧美视频区_成人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ò)。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产porn在线 | 久久一区二区三区av | 国产精品99久久久久久久vr | 羞羞电影网 | 欧美亚成人 | 一级黄片毛片免费看 | 国产精品国产成人国产三级 | 精品久久久久久久久久久久包黑料 | 欧美综合在线观看 | 免费一级欧美大片视频在线 | 日韩精品一区二区亚洲 | 国产精品视频yy9299一区 | 久久久久久久一区二区 | 亚洲欧美一区二区三区在线观看 | 最新91在线视频 | 久久久www成人免费精品 | 欧美一级全黄 | 99国产精品国产免费观看 | 亚洲一区二区三区四区精品 | 一级免费黄视频 | 日韩黄色在线播放 | av在线影片 | 欧美伦交 | 欧美另类综合 | 国产精品剧情一区二区在线观看 | 欧美一级美国一级 | 成人电影毛片 | 青青草免费观看 | av在线在线| 日韩电影一区二区三区 | 亚洲精品av在线 | 成人福利在线观看 | 欧美一极视频 | 黄色电影免费网址 | 黄色美女网站免费看 | 西川av在线一区二区三区 | 欧美福利视频一区二区三区 | 欧美国产一区二区三区 | 欧美一级高潮片免费的 | 热久久成人 | av色在线观看 |