Question: In SQL select statement sometimes we need to use `order by 1` or `1 order by`. What is the main difference between them ?

Answer: 
`ORDER BY 1` means that you want to order your results by the first field in the select. Instead of 1 you can write the first field name (or alias if there is one).

in the `1 ORDER BY` the 1 is part of the previous clause in your SQL. That's not linked to the order by clause.
You can use `order by 1`.  

`1` indicates the column in your `select` clause - the first column.

`select col1, col2 from t1 1 order by` throws a syntax error.