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

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

Разбор

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

Проверь себя · 1/3разбор после ответа
Нужно выбрать заказы за декабрь 2025 из таблицы заказов по полю created_at с временем. Какой фильтр надёжнее задаёт диапазон «весь месяц» без потерь по краям?
Тренировать SQL в Telegram

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