В таблице customers поле lifetime_value_text хранится как текст. Вы делаете топ клиентов по выручке, но сортировка выглядит неверно (например, 100 идёт раньше 20). Как исправить ORDER BY?

AСортировать по приведённому числу: ORDER BY CAST(lifetime_value_text AS int) DESC.
BСортировать по длине строки: ORDER BY LENGTH(lifetime_value_text) DESC.
CСортировать по LOWER(lifetime_value_text).
DДобавить TRIM без каста: ORDER BY TRIM(lifetime_value_text) DESC.
Правильный ответ. Текстовая сортировка и числовая сортировка отличаются; для чисел нужен каст.

Разбор

Когда значение хранится текстом, ORDER BY сравнивает строки, а не числа, поэтому порядок может быть неожиданным. Явное приведение к числовому типу через CAST(... AS int) (или другой подходящий тип) делает сортировку корректной для аналитического смысла.

Проверь себя · 1/3разбор после ответа
В таблице products категория хранится как Books, books, BOOKS. Вы хотите отфильтровать все варианты категории «books» в одном запросе. Какое условие в WHERE наиболее надежно?
Тренировать SQL в Telegram

Ещё вопросы по теме «Строки и приведение типов»