最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

oracle case when 語句的用法詳解

 更新時間:2013年05月29日 18:03:47   作者:  
本篇文章是對oracle case when 語句的用法進行了詳細的分析介紹,需要的朋友參考下
1. CASE WHEN 表達式有兩種形式
復(fù)制代碼 代碼如下:

--簡單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 在語句中不同位置的用法
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的其他實現(xiàn)
3.1 DECODE() 函數(shù)
復(fù)制代碼 代碼如下:

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

貌似只有Oracle提供該函數(shù),而且不支持ANSI SQL,語法上也沒CASE WHEN清晰,個人不推薦使用。
3.2 在WHERE中特殊實現(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%')

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

相關(guān)文章

  • ORACLE應(yīng)用經(jīng)驗(2)

    ORACLE應(yīng)用經(jīng)驗(2)

    ORACLE應(yīng)用經(jīng)驗(2)...
    2007-03-03
  • Oracle中dbms_output.put_line的用法實例

    Oracle中dbms_output.put_line的用法實例

    最近寫了oracle過程,有個ORACLE中dbms_output.put_line的相關(guān)問題,所以下面這篇文章主要給大家介紹了關(guān)于Oracle中dbms_output.put_line的用法實例,需要的朋友可以參考下
    2022-06-06
  • 關(guān)于Oracle多表連接,提高效率,性能優(yōu)化操作

    關(guān)于Oracle多表連接,提高效率,性能優(yōu)化操作

    這篇文章主要介紹了關(guān)于Oracle多表連接,提高效率,性能優(yōu)化操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Oracle查詢優(yōu)化之高效實現(xiàn)僅查詢前10條記錄的方法與實踐

    Oracle查詢優(yōu)化之高效實現(xiàn)僅查詢前10條記錄的方法與實踐

    這篇文章主要介紹了Oracle查詢優(yōu)化之高效實現(xiàn)僅查詢前10條記錄的相關(guān)資料,包括使用ROWNUM、ROW_NUMBER()函數(shù)、FETCH?FIRST(適用于Oracle12c及以上版本)以及LIMIT風(fēng)格(僅適用于兼容模式),需要的朋友可以參考下
    2025-01-01
  • Oracle?DG?的歸檔缺失修復(fù)方法

    Oracle?DG?的歸檔缺失修復(fù)方法

    文章介紹了Oracle DG歸檔缺失的修復(fù)方法,包括檢查歸檔同步情況、查看GAP日志應(yīng)用情況以及不同的修復(fù)思路,如歸檔還在主庫、歸檔已在備庫或歸檔已被刪除等,感興趣的朋友一起看看吧
    2025-02-02
  • Oracle學(xué)習(xí)筆記之視圖及索引的使用

    Oracle學(xué)習(xí)筆記之視圖及索引的使用

    這篇文章主要介紹了Oracle學(xué)習(xí)筆記之視圖及索引的使用,視圖是基于一個表或多個表或視圖的邏輯表,本身不包含數(shù)據(jù),通過它可以對表里面的數(shù)據(jù)進行查詢
    2022-07-07
  • oracle case when 語句的用法詳解

    oracle case when 語句的用法詳解

    本篇文章是對oracle case when 語句的用法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • Oracle刪除死鎖進程的方法

    Oracle刪除死鎖進程的方法

    這篇文章主要介紹了Oracle刪除死鎖進程的方法,涉及查找被鎖表及刪除對應(yīng)進程的技巧,需要的朋友可以參考下
    2015-01-01
  • [Oracle] 淺析令人抓狂的ORA-01555問題

    [Oracle] 淺析令人抓狂的ORA-01555問題

    首先要說明的一點是:ORA-01555錯誤是一個“安全”的錯誤,它不會造成數(shù)據(jù)丟失或損壞,只是會讓接收到該錯誤的查詢無法繼續(xù)。以下就是對發(fā)生ORA-01555錯誤的原因進行了介紹,需要的朋友可以參考下
    2013-07-07
  • Oracle中的序列SEQUENCE詳解

    Oracle中的序列SEQUENCE詳解

    本文詳細講解了Oracle中的序列SEQUENCE,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05

最新評論

江都市| 永丰县| 吉安市| 富锦市| 新巴尔虎右旗| 偏关县| 余庆县| 汝阳县| 崇左市| 普安县| 淅川县| 洮南市| 新安县| 山东| 和林格尔县| 资源县| 隆昌县| 舞钢市| 泽库县| 长沙县| 无极县| 清丰县| 潜江市| 保定市| 五指山市| 安溪县| 富川| 温宿县| 晋江市| 奎屯市| 红河县| 衡阳县| 营山县| 米泉市| 新民市| 拉萨市| 宜昌市| 廊坊市| 全椒县| 吐鲁番市| 文安县|