postgreSQL を使い始めたばかりで (MSSQL と MySQL の歴史があります)、エイリアスについて質問があります。関数で宣言された次の SQL があるとします。
RETURN QUERY SELECT "Table"."col1" AS "Column 1",
"Table"."col2" AS "Column 2"
FROM "Table";
これを強調表示して単独で実行すると、期待どおりの結果が得られます。
Column 1 | Column 2
------------------------
Contents | Contents
of | of
col1 | col2
ただし、この関数を外部から呼び出すと、設定されたエイリアスが無視されるようです。
SELECT * FROM "f_Function"();
取得:
col1 | col2
------------------------
Contents | Contents
of | of
col2 | col2
親プロセスの命名優先度が高い場合に備えて、関数の戻り値の型の定義を変更してみました。
... RETURNS TABLE (col1 integer AS "Column 1", col2 integer AS "Column 2") ...
しかし、これは構文的に間違っていました。
私が言ったように、私はpostgreSQLを使い始めたばかりなので、明らかな何かが欠けているかもしれませんが、この特定の状況に対する助けを見つけることができないようです.
明確にするために、関数を呼び出して、返されたテーブルに列のエイリアスを表示できるようにしたいと考えています。
何か案は?
編集:ユーリ・レビンスキーの解決策
... RETURNS TABLE ("Column 1" integer, "Column 2" integer) ...
と
RETURN QUERY SELECT "Table"."col1",
"Table"."col2"
FROM "Table";
戻り値の表:
Column 1 | Column 2
------------------------
Contents | Contents
of | of
col1 | col2