declare @m int
set @m = 1select case when @m = 1 then print '1' else print '2' end

解决方案 »

  1.   

    case语句不能这么用的
    print
    case
    when @m = 1 then '1'
    else '2'
    end
      

  2.   

    更正:
    declare @m int
    set @m = 1select case when @m = 1 then '1' else '2' end
      

  3.   

    或:
    declare @m int
    set @m = 1print case when @m = 1 then '1' else '2' end
      

  4.   

    declare @m int
    set @m = 1
    print
    case
    when @m = 1 then '1'
    else '2'
    end
      

  5.   

    我需要的是执行如此:在存储过程中根据一个变量@m代表月份case 
         when @m = 1 then insert into month1 ......
         when @m = 2 then insert into month2 ......
         ....
         else insert into month12
    end因为有12个表,表结构相同请问可以用case 吗另外..问一下insert into @m,表名好像不可以用变量,有其他方法吗,所以我才用了case
      

  6.   

    我用这样再试试:
    insert into case when @m = 1 then month1
      

  7.   

    declare @sql varchar(1000)
    set @sql='insert into month' + ltrim(str(@m)) +'.....'
    exec(@sql)
      

  8.   

    declare @m int
    set @m = 1
    select 或print
    case
    when @m = 1 then print '1'
    else print '2'
    end
      

  9.   

    因为我那个表字段实在太多,我要是用exec(@sql)转成一个字符串,也得累死,呵呵