There is also ... Ordering
ClearAll[sortBy];
sortBy[list_, column_, ord_: Less] := list[[Ordering[list[[All, column]], All, ord]]]
Examples:
a = {{1, 2, 3}, {7, 1, 4}, {3, 5, 6}, {10, 7, 1}, {12, 4, 8}};
sortBy[a, 2]
(* {{7,1,4},{1,2,3},{12,4,8},{3,5,6},{10,7,1}} *)
sortBy[a, 2, Greater]
(* {{10,7,1},{3,5,6},{12,4,8},{1,2,3},{7,1,4}} *)
Row[MatrixForm /@ (MapAt[Style[#, Red, Bold, 18] &,
sortBy[a, #], {{All, #}}] & /@ {1, 2, 3})]
Row[MatrixForm /@ (MapAt[Style[#, Red, Bold, 18] &,
sortBy[a, #, Greater], {{All, #}}] & /@ {1, 2, 3})]