В таблице imports столбец amount_text хранит числа в текстовом формате ('100.50', '200'). Что произойдёт при выполнении SELECT CAST(amount_text AS NUMERIC) FROM imports, если часть значений содержит буквы ('N/A')?

AЗапрос вернёт NULL, потому что текстовое значение невозможно преобразовать в число ни при каких условиях
BЗапрос вернёт 0, потому что CAST заменяет нечисловые строки нулём при преобразовании типов
CЗапрос выполнится успешно для любых строк, потому что CAST молча пропускает ошибки конвертации
DЗапрос вызовет ошибку, если в amount_text есть значения, которые нельзя интерпретировать как число
Правильный ответ. CAST выполняет строгое преобразование типов и вызывает ошибку, если значение не может быть преобразовано.

Разбор

Функция CAST(value AS type) пытается преобразовать каждое значение в указанный тип. Для строк вроде '100.50' преобразование в NUMERIC пройдёт успешно. Но если встретится значение 'N/A', которое невозможно интерпретировать как число, запрос завершится ошибкой. Для безопасного преобразования в PostgreSQL можно использовать конструкцию с CASE WHEN или специальные функции.

Проверь себя · 1/3разбор после ответа
Таблицы orders_2024 и orders_2025 имеют одинаковую структуру. Некоторые заказы случайно попали в обе таблицы. Чем будут отличаться результаты SELECT * FROM orders_2024 UNION SELECT * FROM orders_2025 и того же запроса с UNION ALL?
Тренировать SQL в Telegram

Ещё вопросы по теме «Основы SQL-запросов»