Oracle之CASE函數使用

2021-12-21 正厚軟體
Oracle之CASE函數使用

前面我們從不同維度去分析的Oracle和MySQL的區別和使用,接下來我們來分享一些Oracle的函數和特殊用法。首先我們在分享今天的內容之前先來看看以下內容。

l條件查詢

首先如果要查看崗位為MANAGER工資上漲50%的情況我們可以編寫如下語句:

SELECT job,sal,sal*1.5 FROM emp WHERE job = 'MANAGER';

其次如果查看崗位為SALESMAN工資上漲20%的情況我們需要編寫下面語句:

SELECT job,sal,sal*1.2 FROM emp WHERE job = 'SALESMAN';

然後如果查看崗位為ANALYST工資上漲10%的情況我們還需要編寫下面的語句:

SELECT job,sal,sal*1.1 FROM emp WHERE job ='ANALYST';

最後如果我要查看崗位非MANAGER、SALESMAN、ANALYST其他員工工資下調20%的情況還要編寫下面的語句;

SELECT job,sal,sal*0.8 FROM emp WHERE job NOT IN ('MANAGER','SALESMAN','ANALYST');

這樣感覺起來非常的麻煩,每一個條件都需要去編寫一條語句,效率變得比較低,那有沒有什麼更好的辦法呢?答案是肯定的,這就需要用到我們今天分享的內容,我們來看看。

lCase函數

在Oracle中提供Case函數來解決上述問題,我們不需要頻繁的編寫SQL語句,只需要設定好相應的條件,做相應的查詢操作就好了。我們先來看看Case函數的語法:

CASE  列名  

     WHEN 值1 THEN 操作1

     WHEN 值2 THEN 操作2

     WHEN 值3 THEN 操作3

     ELSE 操作4

END

那我們結合上面的問題來看下具體的用法:

SELECT job,sal,

(CASE

      WHEN job ='MANAGER' THEN sal*1.5

      WHEN job ='SALESMAN' THEN sal*1.2

      WHEN job ='ANALYST'  THEN sal*1.1

      ELSE sal*0.8

END) ZH

FROM emp;

在這個具體用法中我們看到,我們按照不同的條件,完成不通過的操作,順利的把上述問題解決了,這就是本次分享的內容,後面還會分享Oracle的一些綜合運用。

相關焦點

  • 網羅收集10046的各種Case,方便trace信息的收集 | Oracle官方博客轉載
    編輯丨TeacherWhat轉載自:Oracle官方博客 - 資料庫產品技術支持題圖:Oracle Middle East Headquarter作者:Jerome Zhang原文連結:https://blogs.oracle.com
  • SQL必備:case when函數與窗口函數
    學會使用窗口函數將會使得一些關於排名或累加的複雜問題的求解變得非常簡便。例如牛客網SQL76:寫一個sql語句查詢各個崗位分數的中位數位置上的所有grade信息,並且按id升序排序。這裡涉及到了中位數的信息,用窗口函數會很方便。
  • oracle注入總結
    SYS.UTL_INADDR", line 4ORA-06512: 在 "SYS.UTL_INADDR", line 35ORA-06512: 在 line 1報錯注入使用的函數出現這種情況可以使用上面這種辦法,切割字符串減少數據大小。
  • 【DB筆試面試850】在Oracle中,造成錯誤「ORA-12547: TNS:lost contact」的常見原因有哪些?
    在沒有安裝GI的環境下,正確權限為:1[oracle@OCPLHR ~]$ ll $ORACLE_HOME/bin/oracle2-rwsr-s--x 1 oracle oinstall 232424392 Feb  2 10:30 /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle3[oracle@OCPLHR ~
  • oracle數據格式化展示那些事兒
    今天主要給大家分享一下在oracle中查詢數據時如何做這些操作。1、向下取整用法為select floor(3.556) from dual或者select trunc(3.556) from dual。這兩種用法都可以對數字3.556進行向下取整,得到結果3。
  • excel函數公式大全之 if 的使用詳解
    此參數可使用任何 比較運算符。© value_if_true可選。 logical_test 參數的計算結果為 TRUE 時所要返回的值。例如,如果此參數的值為文本字符串 ―預算內 ‖,並且 logical_test 參數的計算結果為 TRUE,則 IF 函數返回文本 ―預算內 ‖。
  • 學習技巧分享之怎麼寫文科case study?
    我的很多學生都遇到過同樣的問題,就是就算面前打開了一個case study,依然不會將文章簡化成題目想要的回答。那小編有一個巨簡單的簡化方法,在這裡可以分享給大家。第一,分析題幹。如果這是一篇GCSE的7分case study essay, 你只需要先想出3-4個影響,然後每個idea自成一段,然後每段寫四句話即可。當然啦,我這裡的四句話更多是一種inspiration,而不是說只能寫四句話的意思。四句話是什麼意思呢?就是指Topic sentence+explanation*2+fact support的組合。
  • IF函數與COUNTA函數嵌套使用方法總結
    晴哥錄製的用VBA編制現金流量表的課件中,在透視匯總表裡給科目名稱標序號時使用了IF函數和COUNTA函數,當然,這兩個函數的使用是在VBA裡完成的
  • sumifs函數的使用方法
    sumifs函數。得到結果是228,我們看圖中男生成績得分之和與公式得到的結果一致。再求語文和數學得分都大於等於90分的學生總分之和sumifs函數使用的注意點sumif函數和sumifs函數是有區別的。Sumifs函數的語法格式,第一個參數是求和區域,這個和sumif函數剛好相反,sumif的求和區域在最後。
  • Excel公式與函數之美11:小而美的函數之SMALL函數
    圖1一鍵直達 >> Excel函數學習37:SMALL函數 SMALL>函數之美SMALL函數的原理很簡單,但將其組合在公式中,能夠幫助我們按順序獲取數據,這可能就是SMALL函數的美妙之處。
  • 內核漏洞進擊之旅——Dark Composition Exploitation Case Study
    1:          }關於enum DCPROCESSCOMMAND中的API調用在ProcessCommandBufferIterator是通過switch case管理的,我直接跟到關鍵的nCmdSetResourceBufferProperty函數。
  • DATEDIF函數的使用方法圖解
    excel工作表中的datedif函數,在日常工作中是一個非常實用的日期函數,在幫助和插入公式卻找不到這個函數,所以這個函數是一個隱藏函數,因為是一個隱藏函數,我們就要把函數和參數牢牢記住。這個函數的作用是計算兩個日期之間相差的年數、月數、天數。
  • 沒人比我更懂if-else和switch-case
    }那麼,這個isBidenWin()這個是返回bool變量的函數。再想想啊,這個函數,如果是同步的,能直接返回真實結果的,那當然沒問題。沒完啊,美國大選是很複雜的吧,哪就一條if-else語句就搞定了的。萬一,睡王Biden出了啥三長兩短呢?
  • Excel中如何使用if函數
    在excel中if函數可以說是一個簡單易用的函數,從if的基本意思「如果」我們也能猜出它主要用於數據的判斷中,那麼我們應該如何具體使用呢?
  • vlookup函數的使用方法(實例版)
    有可能面試時候老闆就直接問你,你會使用vlookup嗎。以此來試探你的辦公的基本能力。所以請大家務必好好學習,因為對你的日常工作提高不是一星半點。廢話少說開始講解。VLOOKUP 的語法結構整個計算機就相當於一門語言,首先我們就是要獲取該函數的語法結構。
  • 隨心所欲的「四捨五入」 之 FLOOR函數如何使用?
    Excel的FLOOR函數主要作用向下捨入為指定的倍數本文介紹Microsoft Excel中FLOOR函數的公式語法和用法。
  • FIND函數使用方法
    FIND函數使用方法導讀EXCEL函數是重點部分,也是比較難學的部分,很多同學因為它的難度選擇了放棄,其實函數也沒有想像的那麼難
  • 如何使用EXCEL函數(公式)
    下圖使用SUM函數計算銷售部人員的薪資之和。嵌套函數嵌套函數是指一個函數的輸出值作為另一個函數的參數出現。如下圖,函數SUM作為函數IF的參數。使用函數第一步:選擇輸出值存放的單元格,如G2第二步:在 「公式」選項卡中選擇要使用的函數,如「
  • SQL面試必刷題(1) Case When
    case  when sex = '1' then '男' when sex = '2' then '女'else '未知' end注意:(1) 在CASE函數中,else部分的默認值是(2) CASE函數隻返回第一個符合條件的值,剩下的CASE部分被自動忽略。
  • Excel VBA流程圖解之Select Case語句 多分支選擇的最佳選擇
    >重點解析,Select Case的判斷流程類似於IF Elseif 但是他顯然寫起來很方便當我們的判斷條件始終只對一個目標進行判斷的時候,就應該選擇Seelct Case當需要在分支判斷語句裡對其他的對象混合判斷,這種時候應該選擇IF語句case