ORACLE SQL開發where子句之case-when

清風艾艾發表於2017-05-25
    湖南長沙一地市醫保資料抽取要求從結果集中排除掉城市職工(61)就醫方式住院(61),城市居民31就醫方式住院(21)的資料。其實,這一業務邏輯實現,可以
那scott方案下的資料表emp做實驗。
   我要取的全部結果集:

   那我要排除掉部門30中的WARD和部門20中的ADAMS,該怎麼實現呢?其實很簡單,可以使用結果集做差,如下所示:

    其實,使用where子句的case-when有更優雅的實現方式:

   對比結果集的minus和where子句的case-when,前者的實現邏輯好理解就是從總的結果集中排除不要的結果,
後者實現是取符合要求的資料,就效能而言個人覺得第二種更好、程式碼也更優雅。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29357786/viewspace-2139873/,如需轉載,請註明出處,否則將追究法律責任。

相關文章