sqqq="12,23,56,89,78,45,69,23"
select top 10 * from news where tid in ("& sqqq &") order by addate desc 

解决方案 »

  1.   

    where 条件后不能用 in 吧?
      

  2.   

    declare @sqqq as varchar(50)
    set @sqqq = '12,23,56,89,78,45,69,23'
    exec('select top 10 * from news where tid in (' + @sqqq + ') order by addate desc ')
      

  3.   

    注:上面为SQL SERVER中查询分析器中的写法,具体到你的程序,把他拼接成一个串,然后运行这个串.
      

  4.   


    declare @sqqq nvarchar(40)
    set @sqqq='12,23,56,89,78,45,69,23'
    exec ('select top 10 * from news where tid in ('+@sqqq+') ')
      

  5.   


    楼主:where语句中可以用in,只是你的sql文不规范。
    可以改成:
    select top 10 * from news where tid in (12,23,56,89,78,45,69,23) order by addate desc 
    或者
    declare @sqqq nvarchar(40)
    set @sqqq='12,23,56,89,78,45,69,23'
    exec ('select top 10 * from news where tid in ('+@sqqq+') order by addate desc  ')
      

  6.   

    只能用动态sql,就是楼上的方法
      

  7.   


    declare @s as varchar(4000)
    set @s = '12,23,56,89,78,45,69,23'
    exec('select top 10 * from news where tid in (' + @sqqq + ') order by addate desc ')
      

  8.   


    declare @str nvarchar(100),@sqqq nvarchar(1000)
    set @str=''
    set @sqqq='12,23,56,89,78,45,69,23'
    select @str=@str + 'select top 10 * from news where tid in (' + @sqqq  + ')'
    print @str
      

  9.   

    ("& sqqq &") 能这么写的吗?'&..&'?