Что делает: делать в PostgreSQL? [дубликат]



этот вопрос уже есть ответ здесь:



Я видел :: в различных местах с участием кода postgres я видел в сети. Например:



SELECT '{apple,cherry apple, avocado}'::text[];


кажется, это какой-то актерский состав. Что именно такое :: в postgres и когда следует ли его использовать?



я попробовал немного погуглить и искал документы Postgres для ::, но не получил хороших результатов.

Я попробовал следующие поиски в Google:




  • двойной двоеточие postgres

  • postgres::

  • ::


я попробовал следующие поиски в кнопке поиска документов postgres




  • двойной

  • двойное двоеточие

  • ::


это было почти неловко спрашивать об этом, но я подумал, что Google, надеюсь, увидит этот ответ для других людей в будущем.

1027   2  

2 ответов:

приведение типа определяет преобразование из одного типа данных в другой.

PostgreSQL принимает два эквивалентных синтаксиса для приведений типов, специфичных для PostgreSQL value::type и SQL-стандарт CAST(value AS type).

в данном конкретном случае, '{apple,cherry apple, avocado}'::text[]; принимает строковый литерал {apple,cherry apple, avocado} и говорит PostgreSQL интерпретировать его как массив text.

смотрите документацию по выражения SQL и массивы для подробности.

что написали @PSR и @Craig.
Плюс, есть еще два варианта синтаксис:

1. type value

эта форма только приводит константы (строковые литералы). Например:

SELECT date '2013-03-21';

подробнее в руководстве в главе константы других типов.

2. type(value)

это функциональный синтаксис. Работает только для типов, имена которых допустимы как имена функций. Например:

SELECT date(date_as_text_col) FROM tbl;

подробнее в руководстве в главе Тип Забросы.

Comments

    Ничего не найдено.