order by 什么是 1, 2 对齐?

order by What are 1, 2 in alignment?

select empno , deptno , sal from emp
order by 1,2

对齐的1、2是什么?

一和二是什么?为什么不写列名?

无论您使用

,它的工作原理都是一样的
order by empno, deptno

order by 1, 2

请注意 - 尽管 位置 排序需要较少的输入,但您必须将这样的 order by 子句与每个 select 列列表重新排列同步。我从不使用它(除了 quick & dirty 测试查询)。

查询语言将此定义为快捷方式。

select empno , deptno , sal from emp
order by 1,2
select empno , deptno , sal from emp
order by empno, deptno

意思完全一样。这些数字指的是您 SELECT 中的列号,从 1 开始计数。

如果你有

这样的东西,这个快捷方式就派上用场了
select CONCAT(surname, ', ', givenname) name, empno , deptno , sal from emp
order by 1

因为这样可以节省打字时间。在标准 SQL 中,您必须编写该查询

select CONCAT(surname, ', ', givenname) name, empno , deptno , sal from emp
order by CONCAT(surname, ', ', givenname)

随便用一个。不过要小心;它使您的 ORDER BY 子句取决于 SELECT 子句中项目的顺序。下一个处理您的代码的人可能不希望有这种依赖性。特别是如果下一个人是你。