xasc and xdesc. Consider the following table:
q)table: ([] x: 10 ? "abc"; y: 10 ? til 10) q)table x y --- a 7 a 7 b 1 b 9 a 1 a 0 c 8 b 8 c 3 c 1 q)
To sort by column x, instead of “ORDER BY x”, we write `x xasc table:
q)`x xasc table // sort by column x x y --- a 7 a 7 a 1 a 0 b 1 b 9 b 8 c 8 c 3 c 1 q)
The application of xdesc is similar.
In addition, to sort by multiple columns, instead of “ORDER BY y, x” or “ORDER BY y, x DESC“, we pass the list of column names as the left argument to xasc or xdesc, respectively. For example,
q)`y`x xdesc select from table where y > 5 x y --- b 9 c 8 b 8 a 7 a 7 q)
Don’t confuse xasc and xdesc with asc and desc, which operate on a vector instead of a table. Read more about sorting vectors in this related faq.