动态获取要查询的列的序号,比如查询表ta的第三列到第五列,sql语句怎么写?表名和列的序号都是动态的。
------解决思路----------------------
、
declare @table varchar(100)='a',@colid1 int=1,@colid2 int=1
declare @sql1 varchar(max)
set @sql1=(select ','+name from(
select name from sys.all_columns
where object_id=object_id(@table)
and column_id between @colid1 and @colid2) as t
for xml path(''))
declare @sql varchar(max)
set @sql='select '+stuff(@sql1,1,1,'')+' from '+@table
exec @sql
你参考看看