postgresql - 遍历表并返回特定列

标签 postgresql loops types plpgsql identifier

这是我的功能:

CREATE OR REPLACE FUNCTION getAllFoo()
  RETURNS SETOF "TraderMonthOutstanding" AS
$BODY$
DECLARE
    r  record;
BEGIN
    FOR r IN (select * from "TraderMonthOutstanding"
              where "TraderId"=1 and "IsPaid"=false)
    LOOP

    RETURN NEXT r.TraderId; 

    END LOOP;
    RETURN;
END
$BODY$
LANGUAGE 'plpgsql' ;

我只想要此循环中的 TraderId 但我无法获得它,因为它给我一个错误。
我做错了什么?

最佳答案

您声明 getAllFoo()RETURNS SETOF "TraderMonthOutstanding"(一组具有表 TraderMonthOutstanding 结构的行),但随后您RETURN NEXT r.TraderId(单个字段)。

您需要将声明的返回类型更改为 RETURNS SETOF "TraderMonthOutstanding".TraderId%TYPERETURN NEXT r

关于postgresql - 遍历表并返回特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20114315/

相关文章:

arrays - 如何在 Postgres 中选择数组的子集?

java - 奇怪的 for-each 循环 java

python - Pandas Dataframe - 具有条件/行迭代/上一行计算的最小函数

haskell - 为什么这会给我 "is a rigid type variable bound by"错误

arrays - 将 plist 读入特定类型

sql - 条件 SQL 计数

database - 有没有办法阻止用户在 Postgresql 数据库中进行批量输入

java - Java 中泛型类型的子类

ruby-on-rails - 文本字段 : ERROR invalid body size 上的 Heroku Rails 日志错误消息

php - 递归打印多维数组作为下拉菜单,而无需在 PHP 中进行硬编码循环