case when里的like功能 ////// 截取(substr)

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'  
posted @ 2018-05-07 10:48  Debugs  阅读(3884)  评论(0编辑  收藏  举报