關於三目運算實例


平時在項目中常用到三目運算法,因為簡單的if,else 可以用三目運算來替代,這樣可以減少很多代碼量,今天有個同事在sql中遇到類似情況,想通過最簡潔的代碼來過濾,百度了一下,發現sql中有類似三目運算的情況,跟醬油爺說的case when差不多,記錄下來以備以后不時之需:

類似三目運算的sql:

  select * from T_Op_ClassLearnerMapping where type in
 (
  Case
     WHEN type=1 THEN '1' ELSE '2'
  END
  )
  order by Type desc

 

case  when還有一種用法,就是直接在數據庫中轉換,在頁面顯示別名,

比如有個字段是type類型,每個值代表不同含義,就可以直接通過case when來顯示中文,這種方式比較簡便

 select *,type=Case
            WHEN type=1 THEN '學員'
            WHEN type=2 THEN '客戶'
            WHEN type=3 THEN '教師'
            ELSE 'null'
           END

from T_Op_ClassLearnerMapping

 

PS,我在園子提的問題,各位大神提供的方式:

有對數據庫很精通,有對三目運算很精通的么?eg: var a=""; var b=a==""?True:False; 我想問一下,在數據庫中sql有類似的判斷嗎?

醬油興爺:我記得oracle的。 case when a=b and a is null then 'true' else 'false' end resault.

路過秋天:有isnull(條件,true則值A,false則值B) 具體去掃一下數據庫類型提供什么就用什么

青 蛙:如果判斷是否為空取不同值則有nvl和nvl2兩個函數,多個值做相應轉換可用decode。比較復雜的再用case when         

PPS:秋天跟青蛙說的函數我都沒用過,所以先記着~~呵呵,不管怎樣,還是很謝謝他們的回答      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM