按列索引排序而不是列名

时间:2016-03-17 18:17:25

标签: sql sql-server sql-server-2008 sorting

我有一个动态的select语句,能够按列索引而不是按名称排序会让我的生活更轻松。

示例:

select id, name, description 
from table 
order by description 

想要像:

select id, name, description 
from table 
order by colindex(2)

2 个答案:

答案 0 :(得分:2)

答案是

select id, name, description 
from table 
order by 2

有时这是您处理动态SQL时最简单的方法。 但是,如评论中所述,尽量避免使用列索引。我认为他们会删除它,因为它是bug。

答案 1 :(得分:-1)

如果要动态构建SQL,请将列名存储在数组中。这样,您可以使用序数索引构建order-by语句,并在语句中发出列的真实名称。