最早接觸case when是在行列轉的時候,資料庫中最難的就是各種的查詢,此次的業務需要匯出excel,匯出的內容包含了很多的字段,各種聯合查詢,還有需要計算、分組聯合等。歷經整整一下午終於以近兩百行結束了這個業務。特記錄對於case when的用法,歡迎各位朋友指正,不喜勿噴。
首先case when有兩種表達方式,見下圖的詳細解釋。但是在使用中需要我們靈活巢狀公式哦。
比如:表abc中記錄了id,name,type。我們要根據type的型別統計出name的組合。我們便可以這樣使用此公式:
mysql版本:
oracle版本:
在實際的業務中,此種方法比使用連線查詢或者union查詢的效率要快很多,使得sql更加簡潔明瞭。
在聯合查詢中case when 的乙個簡單使用,這裡便省去了我們在程式中的if else的判斷。
Oracle中CASE WHEN的用法例項
例項演示 1 查詢表users中的資料。select u.id,u.realname,u.from users u 查詢結果如下 id realname 1 10082 松xx 2 10084 林xx 1 3 10087 西xx 4 10100 胡xx 5 10102 龍xx 1 2 上表結果中的 ...
Oracle中的case when的使用
今天要用sql實現乙個小小的邏輯,總之呢,需要用到一些判斷條件,所以準備使用一下 case when的用法,但是由於之前只寫過case when else end單條語句,沒有寫過巢狀,而且 感覺sql寫起來也不好除錯,所以在網上找了下資料。第一步,先寫乙個簡單的巢狀測試一下 select case...
Oracle中case when語句的用法
case when語法 case whenthen whenthen else endcase when else語法要點說明如下 1 以case開頭,以end結尾 2 分支中when 後跟條件,then為顯示結果 3 else 為除此之外的預設情況,類似於高階語言程式中switch case的de...