web-dev-qa-db-ja.com

PostgreSQLで::は何をしますか?

私は見た ::私はネット上で見たpostgresコードを含むさまざまな場所で。例えば:

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

何らかのキャストのようです。 :: postgresで、いつ使用する必要がありますか?

私は少しグーグルを試し、Postgresのドキュメントで::しかし、良い結果は得られませんでした。
Googleで次の検索を試みました:

  • postgresダブルコロン
  • postgres ::
  • ::

Postgres docsの検索ボタンで次の検索を試みました

  • ダブルコロン
  • ダブルコロンキャスト
  • ::

これはSOで質問するのはほとんど恥ずかしいことでしたが、将来的にはGoogleがこの答えを他の人に見てくれることを願っています。

59
ams

型キャストは、あるデータ型から別のデータ型への変換を指定します。

PostgreSQLは、型キャストに対して2つの同等の構文、PostgreSQL固有の_value::type_およびSQL標準のCAST(value AS type)を受け入れます。

この特定のケースでは、_'{Apple,cherry Apple, avocado}'::text[];_は文字列リテラル_{Apple,cherry Apple, avocado}_を受け取り、textの配列として解釈するようにPostgreSQLに指示します。

詳細については、 SQL式 および 配列 のドキュメントを参照してください。

61
PSR