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'