postgresql - postgres函数返回的特定列名

标签 postgresql function

在 postgres 中,我有一个自定义函数,可以连接名字和姓氏。

  CREATE FUNCTION full_name(u users) RETURNS varchar
  LANGUAGE plpgsql VOLATILE
  AS $$
    BEGIN
      RETURN CONCAT_WS(' ', u.first_name, u.last_name);
    END;
  $$;

如果我不必设置列名的名称并且它由函数 eg 确定,那就太好了。

例如。这里我不得不说列名是full_name

SELECT
 full_name(users) as full_name

但如果它自动将其命名为 full_name 就更好了

SELECT
full_name(users)

这可以在自定义函数中设置吗?

最佳答案

由于函数参数是表的名称,因此您不必传递它。

你可以这样调用它:

select users.full_name
from users;

请注意,您必须在函数名前加上表名。您也可以使用别名,但您仍然需要前缀。

select u.full_name
from users u;

在这种情况下,结果集中的列将被命名为full_name(函数的名称)

顺便说一句:您不需要 PL/pgSQL 来实现该功能。为此,普通 SQL 可能会更快。特别是当您将它声明为 stable 而不是 volatile 时 - 它可以内联并且消除了调用函数的开销。

关于postgresql - postgres函数返回的特定列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35389343/

相关文章:

java - 通过不稳定的网络同步本地数据库和远程应用程序

postgresql - 安装在 windows server 2016 服务器上时如何设置 postgresql 复制

sql - 整数 pgsql 的输入语法无效

json - Postgresql 合并具有相同键(hstore 或 json)的行

python - 强制函数参数为字符串

jquery - jquery防止点击事件

javascript - 等待用户对地理位置提示的响应,然后提交表单

javascript - Sequelize promise 在解决之前是否等待 postgres 触发器完成?

java - 如何在Java中找到分数的下限和余数?

php - 何时更改函数与何时编写新函数......?