当列不是检索数据的一部分时,“ORDER BY”如何排序?

时间:2014-11-02 04:23:08

标签: sorting oracle11g

我有一个表可以说是TEST_ORDERBY,其中我有两列NAME和AGE。至于我理解的ORDER BY子句用于对 SELECT语句中检索到的行进行排序。

我使用了以下查询:

SELECT NAME FROM TEST_ORDERBY ORDER BY AGE;

在此查询中,我选择了NAME并在年龄时使用了ORDER BY,并根据AGE对结果进行了适当的排序。我无法理解

ORDER BY 如何根据未选择的列或不是检索数据的一部分对结果进行排序?

我做了一些谷歌,发现ORDER BY可以按表格中的列排序,无论列是否出现在SELECT语句的选择列表中,或者不是但是没有提及

2 个答案:

答案 0 :(得分:2)

这是因为ORDER BY发生在SELECT之前。换句话说,检索整个表,然后排序,然后仅限于NAME列。因此,当排序发生时,我们不会限制使用SELECT ...的某些列。

答案 1 :(得分:0)

检索的每一行都来自表中的一行。它按与所选列关联的行中的列进行排序。