我才刚刚开始使用 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,所以可能会遗漏一些明显的东西,但我似乎无法为这种特定情况找到任何帮助。
需要明确的是,我希望能够调用该函数并使列别名出现在返回的表中。
有任何想法吗?
编辑:Yuri Levinsky 的解决方案
... 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