select @nstp=(case @qxlx when 'x' then  ' and qw05nstp='+@qxlx when '/' then 'and qw05nstp='+@qxlx  else '' end) --是这个意思吧

解决方案 »

  1.   

    set 和 select 用的区别何在
      

  2.   

    msdn的例子,很好的,一看就明白SELECT
       CASE 
          WHEN price IS NULL THEN 'Not yet priced'
          WHEN price < 10 THEN 'Very Reasonable Title'
          WHEN price >= 10 and price < 20 THEN 'Coffee Table Title'
          ELSE 'Expensive book!'
       END AS "Price Category",
    CONVERT(varchar(20), title) AS "Shortened Title"
    FROM pubs.dbo.titles
    ORDER BY price
      

  3.   

    呵呵,select 功能比set 强大,对于同样可使用两者之一的,就看个人习惯了,上面的就是可以用set的,用select可以这个样子:
    select @nstp=(case @qxlx when 'x' then  ' and qw05nstp='+@qxlx when '/' then 'and qw05nstp='+@qxlx  else '' end),
          @defc=(case  @qxian when '全部' then  ''
    else   'and qw05defc='+@qxian end),......