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

oracle case when 語句的用法詳解

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

--簡單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 用法
復制代碼 代碼如下:

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 用法
復制代碼 代碼如下:

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 用法
復制代碼 代碼如下:

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.關于IF-THEN-ELSE的其他實現(xiàn)
3.1 DECODE() 函數(shù)
復制代碼 代碼如下:

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

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

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%')

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

相關文章

  • ORACLE應用經驗(2)

    ORACLE應用經驗(2)

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

    Oracle中dbms_output.put_line的用法實例

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

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

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

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

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

    Oracle?DG?的歸檔缺失修復方法

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

    Oracle學習筆記之視圖及索引的使用

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

    oracle case when 語句的用法詳解

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

    Oracle刪除死鎖進程的方法

    這篇文章主要介紹了Oracle刪除死鎖進程的方法,涉及查找被鎖表及刪除對應進程的技巧,需要的朋友可以參考下
    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,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05

最新評論

海淀区| 温州市| 淄博市| 长寿区| 海晏县| 甘南县| 新河县| 洛川县| 乌拉特中旗| 离岛区| 将乐县| 潜山县| 武穴市| 广元市| 阜康市| 阜康市| 闽清县| 油尖旺区| 平舆县| 平舆县| 和田市| 新田县| 昭平县| 湖北省| 平果县| 林口县| 蓝山县| 达州市| 兴文县| 两当县| 手游| 永泰县| 岳西县| 沂水县| 周至县| 泰兴市| 徐汇区| 丽江市| 化隆| 通辽市| 玛纳斯县|