postgresql - Postgresql - 函数获取行作为参数 - 如何访问该行的列?
问题描述
我有一个函数,它必须获取表员工的一行作为参数,并返回作为参数传递的员工的年龄:
CREATE OR REPLACE FUNCTION getAge(employe employee) RETURNS int AS $$
begin
return employe.age;
END; $$
LANGUAGE PLPGSQL;
我正在尝试调用该函数
select * from getAge('(1, Alexander, 34, null)' );
但它不起作用。我期望该函数返回 34。我应该如何正确调用该函数?
解决方案
我假设您的员工表看起来像这样:
knayak=# \d employee
Table "public.employee"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
id | integer | | |
name | text | | |
age | integer | | |
col4 | text | | |
简单地称它为
select getAge ('(1,Alexander,34,null)');
getage
--------
34
或者使用查询中的表别名作为输入。
select getage(emp)
from employee as emp
where e.id = 1;
select * from func()
用于SET/TABLE
返回函数。
推荐阅读
- mysql - 如何通过 Shell 在 MySQL 中升级?
- c - 分配了 strcat char* 的分段错误
- vim - init.lua 中的 Autocmd InsertEnter 到高亮光标不起作用
- java - rawPassword 不能为空异常
- java - SendZuulResponse 方法用法
- ffmpeg - 为什么我只使用 libavformat 的 av_read_frame 部分读取 mp3 文件?
- javascript - 如何使所有元素正确地与 onmouseover、onmouseout 一起使用?
- javascript - 与浏览器 Javascript 的事件侦听器相比,事件包在 node.js 中如何工作
- spring-boot - Spring-boot:Spring-boot Web 应用程序(Rest API)WAR 文件未运行
- python - 如何在不在 python 中添加两次该元素的情况下将元素添加到列表中我已经尝试过了