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,用关联查询就可以了。

  1. substr('ABCDEFG', 2, 3) = 'BCD'
  2. substr('ABCDEFG', -2)  = 'FG'
  3. substr('ABCDEFG', -4)  = 'DEFG'
05-27 04:35