1

symbol_scan(integer)3 つの列を持つテーブルを返す関数があります: schema, table, count.

次のように選択クエリを実行できます。

> SELECT name, symbol_scan(id), FROM symbols;
       name       |        symbol_scan
------------------+--------------------------
 MY_FIRST_SYMBOL  | (public,random,1)
 MY_SECOND_SYMBOL | (public,another_table,1)
 UNIVERSAL        | (public,international,5)

symbol_scan(id)テーブルが次のようになるように、列名が抽出されるような別のクエリを使用することは可能ですか?

       name       | schema |     table     | count
------------------+--------+---------------+-------
 MY_FIRST_SYMBOL  | public | random        |   1
 MY_SECOND_SYMBOL | public | another_table |   1
 UNIVERSAL        | public | international |   5

これを行う方法はありますか?

注:実行SELECT * FROM symbol_scan(1)すると、もちろん3つの列が得られますが、関数自体に名前を入れる以外に、そこに名前を入れる方法がわかりません。

4

1 に答える 1

3

次の単純な構文を使用して、Postgres で必要なことを行うことができます。

SELECT name, (symbol_scan(id)).* 
FROM symbols
于 2013-01-21T15:08:34.923 に答える