await db
.selectFrom("person")
.select(["id", "first_name"])
.where("id", "=", "1")
.orderBy(
(eb) =>
eb
.case()
.when(
eb.fn("length", ["first_name"]),
"<=",
eb.fn("length", ["last_name"]),
)
.then(eb.fn("length", ["first_name"]))
.else(eb.fn("length", ["last_name"]))
.end(),
"desc",
)
.executeTakeFirst()
await db
.selectFrom("person")
.select(["id", "first_name"])
.where("id", "=", "1")
.orderBy(
(eb) =>
eb
.case()
.when(
eb.fn("length", ["first_name"]),
"<=",
eb.fn("length", ["last_name"]),
)
.then(eb.fn("length", ["first_name"]))
.else(eb.fn("length", ["last_name"]))
.end(),
"desc",
)
.executeTakeFirst()