来自PostgreSQL中函数的列别名

时间:2013-08-07 09:46:32

标签: sql function postgresql alias

我刚刚开始使用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

1 个答案:

答案 0 :(得分:1)

请使用以下示例: RETURNS TABLE(dstring字符变化,......) 从function_name中选择*;

您将在函数声明中看到列名称dstring,...。您不需要使用别名:只需按名称命名即可。