sql >> データベース >  >> RDS >> PostgreSQL

CREATE VIEWは、列よりも多くの列名を指定します

    簡単な例を考えてみましょう:

    postgres=# create function foofunc() returns table(a int, b text) language sql as $$ select 1, 'a'::text $$;
    postgres=# select foofunc();
    ╔═════════╗
    ║ foofunc ║
    ╠═════════╣
    ║ (1,a)   ║
    ╚═════════╝
    

    関数が列/変数コンテキストで呼び出されると、指定された戻り型の単一の値が返されます。エラーの原因は次のとおりです。ビューのselect 1つの列のみを返します。

    ただし、関数がテーブルコンテキストで呼び出されると、真のテーブルのように値が返されます。

    postgres=# select * from foofunc();
    ╔═══╤═══╗
    ║ a │ b ║
    ╠═══╪═══╣
    ║ 1 │ a ║
    ╚═══╧═══╝
    

    したがって、ビューを作成するときは、2番目のアプローチを使用する必要があります。

    CREATE VIEW v1 (c1, c2, c3, c4, c5) AS
      SELECT * FROM f1 (1, 2);
    



    1. SQL ServerのIDENTITY()とIDENTITY():違いは何ですか?

    2. プログラムでdjangoの多対多リンクを特定する

    3. (n-1)レベルのデータに基づいてnレベルの集計データを最適に計算する方法(Oracle)

    4. PHP7がMySQLiを見つけることができません