# What is q’s equivalent to sql’s ORDER BY?

`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`

, 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.