case when里的like功能
假如要用到case when又要用到like這樣的功能,即如果字符串包含‘語文’就怎么怎么樣,包含‘數學’就怎么怎么樣,包含‘英語’就怎么怎么樣,like是用於where中的,放在case when里面是無效的,可以用instr()這個函數來查找這些字符出現的位置,代替like的功能,這樣寫就好吶。
case when instr(t.str,’語文’) > 0 then 0
when instr(t.str,’語文’) > 0 then 1
when instr(t.str,’語文’) > 0 then 2
else 3 end
另外在多表查詢時,一開始我喜歡用in,在執行了一段時間后報出了ora-1幾幾幾數字類型不正確的錯誤,分析了一下估計是in的括號里的數據太多的緣故,所以盡量不要用in,用關聯查詢就可以了。
- substr('ABCDEFG', 2, 3) = 'BCD'
- substr('ABCDEFG', -2) = 'FG'
- substr('ABCDEFG', -4) = 'DEFG'