2011-03-01 48 views
1

什么是ORDER BY 1,2ORDER BY在SQL子句

我们可以ORDER BY子句中使用数值的含义是什么?

这是一个有效的声明?

+0

它是有效的 - 但我还是推荐使用**列名**,而不仅仅是他们的序位 - 减少意外惊喜的机会! – 2011-03-01 08:48:15

回答

3

ORDER BY 1, 2列的顺序将通过您的选择第一和第二表达式订购您的数据。例如:

SELECT 
    Col1, 
    Col2 
FROM 
    Table 
ORDER BY 
    1 

是一样的:

SELECT 
    Col1, 
    Col2 
FROM 
    Table 
ORDER BY 
    Col1 

你可以使用这个符号与表达,例如:

SELECT 
    10 - IntCol1, 
    Col2 
FROM 
    Table 
ORDER BY 
    1 
+1

这是一样的,只要你不改变你的SELECT列列表。如果你这样做 - 你突然之间完全由其他东西来订购.... – 2011-03-01 09:16:52

3

这是一个有效的语句。数字指向结果中的列位置。

ORDER BY 1, 2 

相同

ORDER BY MyTable.FirstColumn, MyTable.SecondColumn