92

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

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

なんかのキャストのようです。postgresには正確に何が::あり、いつ使用する必要がありますか?

少しグーグルで調べてPostgresのドキュメントを検索しまし::たが、良い結果は得られませんでした.
Googleで次の検索を試しました:

  • postgres 二重コロン
  • ポストグル::
  • ::

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

  • 二重コロン
  • 二重結腸キャスト
  • ::

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

4

2 に答える 2

94

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

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

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

詳細については、 SQL 式配列に関するドキュメントを参照してください。

于 2013-03-21T01:12:33.297 に答える
9

@PSR と @Craig が書いたもの。
さらに、さらに 2 つの構文バリアントがあります。

1.type value

この形式は、定数 (文字列リテラル) のみをキャストします。のように:

SELECT date '2013-03-21';

他のタイプの定数の章のマニュアルの詳細。

2.type(value)

それが関数のような構文です。名前が関数名として有効な型に対してのみ機能します。のように:

SELECT date(date_as_text_col) FROM tbl;

詳しくはマニュアルのType Castsの章をご覧ください。

より包括的な答え:

于 2013-03-21T01:57:29.010 に答える