例子呢就类似这样的,问题出在哪啊create proc text_case
@aa varchar(20)
as
declare @bb varchar(20)case @aa
when 'aaa' then @bb='aaa'
else @bb='bbb'
end 

解决方案 »

  1.   


    create proc text_case
    @aa varchar(20)
    as
    declare @bb varchar(20)
    select @bb = 
    case @aa
    when 'aaa' then 'aaa'
    else 'bbb'
    end 
      

  2.   

    oracle中变量赋值可以直接赋值;
    sqlserver中变量赋值应该使用set @var='var' 或 select @var = 'var'
      

  3.   

    哎呀,我写的不好,其实是多个变量的,类似这样:create proc text_case
    @aa varchar(20)
    as
    declare @bb varchar(20),
            @cc varchar(20)case @aa
    when 'aaa' then @bb='aaa' and @cc='aaa'
    else @bb='bbb' and @cc='cccc'
    end 
      

  4.   


    create proc text_case
    @aa varchar(20)
    as
    declare @bb varchar(20),
            @cc varchar(20)
    select @bb = case @aa when 'aaa' then 'aaa' else 'bbb' end,
           @cc = case @aa when 'aaa' then 'aaa' else 'bbb' end ----------------------------------------------------------
    create proc text_case
    @aa varchar(20)
    as
    declare @bb varchar(20),
            @cc varchar(20)
    select @bb = case @aa when 'aaa' then 'aaa' else 'bbb' end
    set @cc = @bb