Поле price_text хранит цены как текст, например 2, 10, 100. Аналитик написал фильтр WHERE price_text > '10' и получил странные результаты. Что нужно поменять, если сравнение должно быть числовым?
AОставить как есть: сравнение
'2' > '10' корректно для чисел.BЗаменить
> на !=.CСделать явный каст и сравнивать как число:
WHERE CAST(price_text AS int) > 10.DСделать
WHERE LOWER(price_text) > '10'.Правильный ответ. Сравнение текстов и чисел — разные операции: для числовой логики нужен явный каст.
Разбор
Текст сравнивается лексикографически, поэтому '100' может вести себя не так, как число 100. Если поле хранится как текст, аналитик должен явно привести его к числовому типу через CAST или ::type. Тогда WHERE начнет работать в соответствии с бизнес-смыслом.
Проверь себя · 1/3разбор после ответа
Вы строите список уникальных email для рассылки и хотите: (1) убрать пробелы по краям, (2) привести все email к нижнему регистру. Какое выражение лучше использовать как нормализованный ключ?
Ещё вопросы по теме «Строки и приведение типов»
- У вас есть таблицы `users(email)` и `marketing_signups(email)`. В одной системе email сохраняется как `Ivan@Example.com`, в другой — `ivan@example.com`. Какой подход в `JOIN` чаще всего решает проблему без изменения данных в таблицах?
- В таблице `products` категория хранится как `Books`, `books`, `BOOKS`. Вы хотите отфильтровать все варианты категории «books» в одном запросе. Какое условие в `WHERE` наиболее надежно?
- В отчёте по городам вы делаете агрегацию по `city`, но видите две строки: `Moscow` и `Moscow ` (с пробелом в конце). Как исправить это прямо в запросе?
- В `amount_text` суммы записаны как текст, но иногда встречается пустая строка `''`. Запрос `SUM(CAST(amount_text AS int))` падает. Какое выражение чаще всего решает проблему, превращая пустые строки в `NULL` перед кастом?
- В таблице `customers` поле `lifetime_value_text` хранится как текст. Вы делаете топ клиентов по выручке, но сортировка выглядит неверно (например, `100` идёт раньше `20`). Как исправить `ORDER BY`?
- Все вопросы по «Строки и приведение типов» →