SELECT DISTINCT TOP @i_number_of_results i_id
FROM @tb_ABC这样的语句是通不过的,那我应该怎么写?@i_number_of_results是一个参数,用户执行SP的时候传进来的。谢谢大家!

解决方案 »

  1.   

    create table a([id] [int])
    insert into a(id) values(1)
    insert into a(id) values(2)
    insert into a(id) values(3)
    insert into a(id) values(4)
    insert into a(id) values(5)declare @num as int
    declare @sql as varchar(2000)
    set @num = 2
    set @sql = 'select top ' + cast(@num as char) + ' * from a'
    exec(@sql)drop table aid          
    ----------- 
    1
    2
      

  2.   

    declare @sql varchar(200)
    set @sql = 'SELECT DISTINCT TOP  '+ cast(@i_number_of_results as char) + i_id
    FROM @tb_ABC'
    exec(@sql)
      

  3.   

    EXEC('SELECT DISTINCT TOP '+rtirm(@i_number_of_results)+' i_id FROM ['+@tb_ABC']')
      

  4.   

    或者SET ROWCOUNT @i_number_of_resultsEXEC('SELECT DISTINCT i_id FROM ['+@tb_ABC']')SET ROWCOUNT 0