ORACLE SQL開發where子句之case-when
湖南長沙一地市醫保資料抽取要求從結果集中排除掉城市職工(61)就醫方式住院(61),城市居民31就醫方式住院(21)的資料。其實,這一業務邏輯實現,可以
那scott方案下的資料表emp做實驗。
我要取的全部結果集:
那我要排除掉部門30中的WARD和部門20中的ADAMS,該怎麼實現呢?其實很簡單,可以使用結果集做差,如下所示:
其實,使用where子句的case-when有更優雅的實現方式:
對比結果集的minus和where子句的case-when,前者的實現邏輯好理解就是從總的結果集中排除不要的結果,
後者實現是取符合要求的資料,就效能而言個人覺得第二種更好、程式碼也更優雅。
那scott方案下的資料表emp做實驗。
我要取的全部結果集:
那我要排除掉部門30中的WARD和部門20中的ADAMS,該怎麼實現呢?其實很簡單,可以使用結果集做差,如下所示:
其實,使用where子句的case-when有更優雅的實現方式:
對比結果集的minus和where子句的case-when,前者的實現邏輯好理解就是從總的結果集中排除不要的結果,
後者實現是取符合要求的資料,就效能而言個人覺得第二種更好、程式碼也更優雅。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29357786/viewspace-2139873/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL中 where 子句和having子句中的區別SQL
- oracle SQL with 子句OracleSQL
- SQLite中的WHERE子句SQLite
- SQL優化] 避免在WHERE子句中對列使用函式SQL優化函式
- MySQL最佳化WHERE子句(轉)MySql
- SQL之limit子句的使用SQLMIT
- MyBatis中的<where>標籤和where子句的區別MyBatis
- Oracle中where子句中條件的物理執行順序Oracle
- 詳解MySQL中WHERE子句的用法MySql
- MySQL怎樣最佳化WHERE子句(轉)MySql
- SQL -- JOIN子句SQL
- MySQL-WHERE子句 以及 邏輯操作符MySql
- 【SQL】Oracle SQL join on語句and和where使用區別SQLOracle
- 【轉】LINQ to SQL語句(1)之WhereSQL
- truncate和不帶where子句的delete, 以及drop區別delete
- 【實驗】where子句的解析順序及執行效率
- SQL grouping sets 子句SQL
- [pl sql] where current ofSQL
- 【警惕】強化關聯更新時where子句範圍限定意識
- SQL Where in list 問題SQL
- oracle之group by,having和where的區別Oracle
- ORACLE sql merge into update where條件位置與效能消耗OracleSQL
- oracle只有當where子句中所有條件都使用"=:"才認為是使用繫結變數麼?Oracle變數
- ORACLE WITH CHECK OPTION子句詳解Oracle
- Oracle in子句過多的硬編碼引發的故障Oracle
- SQL server 與Oracle開發比較SQLServerOracle
- oracle的sql查詢分析函式-高階部分-分析函授over()子句OracleSQL函式
- exists子句在Sql中的含義SQL
- ORACLE從零開始系列之SQL(一)OracleSQL
- SQL中where和on的區別SQL
- SQL 優先順序join>whereSQL
- SQL join中on與where區別SQL
- SQL的開發建議(MySQL和Oracle)MySqlOracle
- 【學習】SQL基礎-005-group by子句SQL
- 分析函式之視窗子句函式
- MyBatis系列(七):MyBatis動態Sql之choose,where,set標籤的用法MyBatisSQL
- oracle 11g model子句的用法Oracle
- SQL語句各子句的執行順序SQL