declare @s varchar(8000) set @s='' select @s=@s+','+name from syscolumns where id=object_id('orders') set @s=stuff(@s,1,1,'') exec('select * from orders order by '+@s+' desc')
可以直接order by 1,2,3,4...
order by 后面可以跟多个字段,用逗号分隔就行了
默认情况下是asc,所以 order by 1,2,3 就行了 desc 好象每个都要写。order by 1 desc,2 desc,3 desc个人观点 。。
上面说的没错。 lxzm1001(*蓝星之梦*) 的改成这样: DECLARE @s varchar(8000) SET @s = '' SELECT @s=@s+' desc,'+name FROM SYSCOLUMNS WHERE ID=OBJECT_ID('表') SET @s = STUFF(@s,1,6,'') EXEC('SELECT * FROM FromExcel ORDER BY '+@s+' desc')
set @s=''
select @s=@s+','+name from syscolumns where id=object_id('orders')
set @s=stuff(@s,1,1,'')
exec('select * from orders order by '+@s+' desc')
desc 好象每个都要写。order by 1 desc,2 desc,3 desc个人观点 。。
lxzm1001(*蓝星之梦*) 的改成这样:
DECLARE @s varchar(8000)
SET @s = ''
SELECT @s=@s+' desc,'+name FROM SYSCOLUMNS WHERE ID=OBJECT_ID('表')
SET @s = STUFF(@s,1,6,'')
EXEC('SELECT * FROM FromExcel ORDER BY '+@s+' desc')