order by 1
betyder "ordning efter det första fältet jag valde" -- dvs, i det här fallet, samma som order by playerno
, eftersom playerno
var det första fältet i listan.
Om du vill ha den officiella formuleringen, här är vad SQL-92 standard säger:
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>.
I det här fallet, b
är den som verkar gälla.
Senare versioner av SQL-standarden har dock tagit bort denna funktion, så ny kod bör i allmänhet undvika det. SQL-baserade databasservrar har fasat ut det ett tag nu, men de flesta fortsätter att stödja det för bakåtkompatibilitetens skull. Samtidigt indikerar det faktum att de har utfasat det att de inte längre anser att det är en funktion som de verkligen behöver stödja, så det kan tas bort när som helst utan ytterligare varning (t.ex. om de hittar en bugg i den delen av sin kod kan de bestämma att det bästa sättet att fixa felet är att bara inaktivera den funktionen).