質問: 環境:(PostgreSQL) 9.4.5 `SELECT ARRAY['foo', 'bar', 'hoge'] AS fuga;` この配列から真ん中のbarだけ取得したい場合、どのようにすればいいのでしょうか PHP感覚で `SELECT ARRAY['foo', 'bar', 'hoge'][0] AS fuga;` としたら ERROR: "["またはその近辺で構文エラー と怒られてしまいました・・・
回答: 確かに `[x]` で特定の要素を取り出すことができますが、 * 単純な列名である場合などを除いて、配列を表す式は括弧で囲む必要があります 参考: 4.2.3. 添字 * 添字は1から始まります(範囲外の添字を指定するとNULLになります) 参考: 8.15.3. 配列へのアクセス ということで以下のようにすれば `bar` が取得できます。 ``` SELECT (ARRAY['foo', 'bar', 'hoge'])[2] AS fuga; ```