sql - Postgresql函数返回有变化的表
问题描述
我在函数调用中遇到错误。错误是:
列引用“rental”不明确第 2 行:CASE active DETAIL:它可以引用 PL/PGSQL 变量或表列
查询是:
CREATE FUNCTION convert()
RETURNS TABLE (customerid int, fname varchar, lname varchar, email varchar, tripDate timestamp, rental varchar)
Language plpgsql
AS $$
BEGIN
RETURN QUERY
SELECT CASE WHEN rental = 1
THEN 'yes'
ELSE 'no'
END
FROM EML
END; $$;
解决方案
改变
SELECT CASE WHEN rental = 1 THEN 'yes'
WHEN rental = 0 THEN 'no'
至
SELECT
CASE
WHEN rental = 1
THEN 'yes'
ELSE 'no'
END
编辑部分:
如果你不想只迭代二进制值,你应该像这样添加这个条件:
RETURN QUERY
SELECT
CASE
WHEN rental = 1
THEN 'yes'
ELSE 'no'
END
FROM EML WHERE rental In(0, 1)
推荐阅读
- excel - 将标准行/列中的 Excel 数据转换为每个唯一行 1 列,行数与列数一样多
- python-3.x - 有没有一种安全的方法可以从 Shell 脚本中杀死一个命名的 python 进程?
- reactjs - react native 中的 FlatList 正在渲染但不显示文本
- javascript - 在javascript(React)中使用特定键反转对象数组的问题
- r - 插入符号中带有 search = 'random' 选项的 tuneLength 参数不起作用
- javascript - 组件的多个导航链接使用 reactjs 呈现每次点击
- r - 是否有 R 函数来统计比较不同的集群解决方案?(例如,使用 pam/clara 解决方案的 k-means 解决方案)
- scala - 如何使用 Circe 解析动态 JSON
- javascript - 为什么没有为此 MediaStreamTrack 触发“结束”事件?
- azure - 如何使用 powershell 查询“Azure 状态”