SQL Sorting by column number (instead of name)


You can use a column's number (where the leftmost column is '1') to indicate which column to base the sort on, instead of describing the column by its name.

Pro: If you think it's likely you might change column names later, doing so won't break this code.

Con: This will generally reduce readability of the query (It's instantly clear what 'ORDER BY Reputation' means, while 'ORDER BY 14' requires some counting, probably with a finger on the screen.)

This query sorts result by the info in relative column position 3 from select statement instead of column name Reputation.

SELECT DisplayName, JoinDate, Reputation
FROM Users
Jarrod Dixon2008-10-0311739
Geoff Dalgas2008-10-0312567
Joel Spolsky2008-09-1625784
Jeff Atwood2008-09-1637628