declare @VI_OPERID as varchar(20)
set @VI_OPERID='10530486434'
select case when len(@VI_OPERID)-9>=0  THEN len(@VI_OPERID)-9 WHEN len(@VI_OPERID)-9<0 THEN 0就是想如果len(@VI_OPERID)-9大于等于零就取len(@VI_OPERID)-9,反之就取0,一简单的逻辑半天搞不定,
max函数只有一个参数,iif函数用不了,网上查用case when,死活语法错误,唉,没学过SQL就是不行。
我用的sql2005,请知道的吭一声

解决方案 »

  1.   

    declare @VI_OPERID as varchar(20)
    set @VI_OPERID='10530486434'
    select case when len(@VI_OPERID)-9>=0  THEN len(@VI_OPERID)-9 
    WHEN len(@VI_OPERID)-9<0 THEN 0 END cc ---少了end 
      

  2.   

    最后面漏了个“END
      

  3.   

    declare @VI_OPERID as varchar(20)
    set @VI_OPERID='10530486434'
    select case when len(@VI_OPERID)-9>=0  THEN len(@VI_OPERID)-9 WHEN len(@VI_OPERID)-9<0 THEN 0 end或者:declare @VI_OPERID as varchar(20)
    set @VI_OPERID='10530486434'
    select case when len(@VI_OPERID)-9>=0  THEN len(@VI_OPERID)-9 else 0 end