create view_ss(a,b)
as
select 
  表a.a,
   表b.b
from
  表a,
  表b
where 
  a.c= b.c
  and 再加个case返回值 flag = 1
其中
  case 
  when function1(a.a,b.b)= 9
  then function2 (a.a,b.b)
  then function1 (a.a,b.b)
  as flag怎么把case语句作为条件语句??谢谢高手指点。

解决方案 »

  1.   

     and  (case when 条件1=9 then 1 
                when 条件2=.. then  0 
                else 0  end) = 1括号里就是你的flag了。
    要分
      

  2.   

     case when 字段=1 then 1 else 0 end  
      

  3.   

    case when 条件一 then 结果一 when 条件二 then 结果二.......when 条件N then 结果N else 结果N+1 end
    decode(值一,结果一,值二,结果二.......,值N,结果N,结果N+1)
    一样,用哪个都行
      

  4.   

    条件语句里面怎么都能加的,
    只要条件语句是个条件判断就行了,
    也就是不管是case还是decode都返回的是一个值,
    你让返回的这个值和另一个值构成结果真假的条件式就行,
    比如四楼那样就可以。
    以后写条件式按照这个思路来肯定没有问题,或者你也可以嵌套一层(效率没有4楼那种好的)
    select * from
    (
    select 
    case
        when ***.id = 1 then 0
        else 1
    end flag
    from ***
    )
    where flag = 0 //或者等于1看条件了
      

  5.   

    decode(column1,value1,output1,value2,output2,output3......)
    对column1列求函数,如果值为value1,用output1代替,如果值为value2用output2代替,else用output3代替,依次类推。