order by 1
oznacza "zamówienie według pierwszego wybranego pola" -- czyli w tym przypadku to samo, co order by playerno
, ponieważ playerno
było pierwszym polem na liście.
Jeśli chcesz uzyskać oficjalne brzmienie, oto co SQL-92 standardowe mówi:
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>.
W tym przypadku b
to ten, który wydaje się mieć zastosowanie.
Jednak nowsze wersje standardu SQL usunęły tę możliwość, więc nowy kod powinien generalnie tego unikać. Serwery baz danych oparte na SQL od pewnego czasu są przestarzałe, ale większość nadal go obsługuje ze względu na kompatybilność wsteczną. Jednocześnie fakt, że została ona wycofana, wskazuje, że nie uważają jej już za funkcję, którą naprawdę muszą obsługiwać, więc może zostać usunięta w dowolnym momencie bez dalszego ostrzeżenia (np. jeśli znajdą błąd w tej części swojego kodu, mogą zdecydować, że najlepszym sposobem naprawienia błędu jest wyłączenie tej funkcji).