На ревью вы видите выражение CAST(user_id AS text) в коде Postgres. Какой вариант с оператором :: записывает то же самое приведение типа?

ACAST(user_id text)
Buser_id AS text
Cuser_id::text
Duser_id::int::text
Правильный ответ. ::type — сокращённая форма явного каста, эквивалентная CAST(... AS type).

Разбор

В Postgres-подобных СУБД два распространённых синтаксиса явного приведения типов — CAST(x AS type) и x::type. Оба делают намерение запроса явным и уменьшают риск скрытых проблем из-за неявных приведений. CAST(user_id text) без AS — синтаксическая ошибка, user_id AS text — это алиас, а не приведение, а user_id::int::text сначала приводит к int и только потом к тексту, что меняет смысл при наличии нечисловых значений.

Проверь себя · 1/3разбор после ответа
В таблице products код товара хранится как текст, например 00123 (важны ведущие нули). Вы хотите соединить её с catalog(code) (тоже текст). Какое действие чаще всего приводит к багу и пропущенным совпадениям?
Тренировать SQL в Telegram

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