На ревью вы видите выражение 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 и только потом к тексту, что меняет смысл при наличии нечисловых значений.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

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