Ответ 1
order by 1
означает "порядок по первому выбранному мной полю" - то есть, в этом случае, то же самое, что и order by playerno
, потому что playerno
было первым полем в списке.
Если вам нужна официальная формулировка, вот что говорит стандарт SQL-92 1:
10)If ORDER BY is specified, then each <sort specification> in the
<order by clause> shall identify a column of T.
Case:
a) If a <sort specification> contains a <column name>, then T
shall contain exactly one column with that <column name> and
the <sort specification> identifies that column.
b) If a <sort specification> contains an <unsigned integer>,
then the <unsigned integer> shall be greater than 0 and not
greater than the degree of T. The <sort specification> iden-
tifies the column of T with the ordinal position specified by
the <unsigned integer>.
В этом случае, b
, кажется, применяется.
1. Эта цитата взята из свободно доступного проекта, а не из утвержденного стандарта.Хотя я уверен, что есть хотя бы несколько изменений между этим проектом и окончательным текстом стандарта (не говоря уже о том, чтобы между одной версией стандарта и другой), кажется маловероятным, что что-то такое фундаментальное изменится (вероятно, когда-либо).