declare @stu varchar(50)
select
case when stname!=''
then
  set @stu=stname,
  stname
end from stu s,stname sn from s.st_id=sn.st_id
这样写为什么有错误,我想要的是让@stu变量能够获取到case when中获取stname的值。谢谢给为大哥了。帮帮吗?如果不行请问有什么别的办法请多多指教!!

解决方案 »

  1.   

    select 
    case when stname<>'' 
    then 
      stname
    end from stu s,stname sn from s.st_id=sn.st_id select @stu =
    (case when stname<>'' 
    then 
      stname
    end) from stu s,stname sn from s.st_id=sn.st_id 
      

  2.   

    select做为赋值的时候.不能同时显示记录.select @stu=case when stname!='' then stname else xxx end 
    from stu as a where st_id=1
      

  3.   

    这个语句没看懂  怎么有两个from ?
      

  4.   

    select 
      @stu=case when stname!='' then stname else 0 end 
    from
     stu s 
    where 
     st_id=1
      

  5.   

    ---应该是这样
    select 
      (@stu=case when stname!='' then stname else 0 end )
    from
      stu s,stname sn 
    where 
      s.st_id=sn.st_id 
      

  6.   


    在语句的第四行多了个stname
      

  7.   


    declare @str varchar(50)
    select @str = 
    case when stname != '' then stname end
    from stu s,stname sn 
    where s.st_id = sn.st_id
      

  8.   

    这个就是我想要的把stu这个表中的一个记录表名的字段给传过来也就是你因该看到的@stname上面写错了。不好意思。。