Что произойдёт при выполнении запроса SELECT product_id, price - cost AS margin FROM products, если столбцы price и cost числовые и не содержат NULL?

AЗапрос выполнится успешно и вернёт столбец margin с разницей между ценой и себестоимостью для каждой строки
BЗапрос вызовет ошибку выполнения, потому что арифметические операции запрещены в SELECT без оборачивания в функцию
CЗапрос создаст новый физический столбец margin в самой таблице products и сохранит туда вычисленные данные навсегда
DЗапрос выполнится, но столбец margin будет содержать NULL для всех строк независимо от значений в price и cost
Правильный ответ. В SELECT можно использовать арифметические выражения — результат становится вычисляемым столбцом без изменения таблицы.

Разбор

SQL позволяет использовать арифметику прямо в SELECT: price - cost вычислит разницу для каждой строки, а AS margin даст этому столбцу имя в результате. Вычисляемый столбец существует только в результате запроса и не изменяет структуру таблицы. Если оба столбца числовые и не содержат NULL, результат будет числовым. Утверждения про ошибку, изменение схемы таблицы или сплошной NULL неверны и противоречат семантике SELECT.

Проверь себя · 1/3разбор после ответа
Нужно вывести только оплаченные заказы (status = 'paid') и отсортировать их по времени создания от новых к старым. Какой запрос соответствует задаче?
Тренировать SQL в Telegram

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