Kysely

Order By

The orderBy clause sorts query results based on one or more columns or expressions. Results can be sorted in ascending (asc) or descending (desc) order.

db.selectFrom('users')
  .select(['id', 'email', 'created_at'])
  .orderBy('created_at', 'desc')
  .orderBy('email') // 'asc' by default
  .execute()

Multiple Columns

db.selectFrom('users')
  .select(['id', 'email'])
  .orderBy(['created_at desc', 'email'])
  .execute()

SQL Expressions

import { sql } from 'kysely'
 
db.selectFrom('users')
  .select(['id', 'first_name', 'last_name'])
  .orderBy(sql`concat(first_name, ' ', last_name)`)
  .execute()

Dynamic Sorting

const { ref } = db.dynamic
 
function sortUsers(orderByColumn: string) {
  return db
    .selectFrom('users')
    .select(['id', 'email'])
    .orderBy(ref(orderByColumn))
    .execute()
}

On this page