postgres如何获取获取多列值?

小猪
CREATE OR REPLACE FUNCTION "public"."sxfun"("jcbh" text)
  RETURNS "pg_catalog"."int4" AS $BODY$
declare leftplayer TEXT;
declare rightplayer TEXT;
declare leftcoin int;
    BEGIN
    SELECT player1 into leftplayer,player2 into rightplayer FROM table1 WHERE id=$1;
    SELECT SUM(playcoin) into leftcoin FROM table2 WHERE playname=leftplayer 
    COMMIT;
END$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100

该代码语法错误,请解决该问题,请

a_horse_with_no_name

您缺少返回声明。在PL / pgSQL中,declare启动一个块,不需要为每个变量重复该关键字。而且您不能提交函数-并且您不需要它开始。

如手册中所述,您需要用于return从函数返回值。

要将多列存储到多个变量中,您需要用逗号分隔它们,而不是重复该INTO子句。

请注意,sum()返回的是bigint,因此您的变量和返回类型也应定义为bigint。

CREATE OR REPLACE FUNCTION public.sxfun(jcbh text)
  RETURNS bigint
AS 
$BODY$
declare 
  leftplayer TEXT;
  rightplayer TEXT;
  leftcoin bigint;
BEGIN
   SELECT player1, player2  
    into leftplayer, rightplayer 
  FROM table1 
  WHERE id = jcbh;    
  SELECT SUM(playcoin) 
     into leftcoin 
  FROM table2 
  WHERE playname = leftplayer;

  return leftcoin; --<< return the value
END
$BODY$
LANGUAGE plpgsql;

如果id是数字(名称通常表示),则该参数jcbh应声明为integer,而不是text


请注意,您可以将其简化为单个语句。不需要中间变量:

CREATE OR REPLACE FUNCTION public.sxfun(jcbh text)
  RETURNS bigint 
AS 
$BODY$
  SELECT SUM(playcoin) 
  FROM table2 
  WHERE playname IN (select leftplayer
                     FROM table1 
                     WHERE id = jcbh); 
$BODY$
LANGUAGE sql;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取多列

来自分类Dev

如何获取单行中多列的最大值?

来自分类Dev

如何在单列中获取多列的行值?

来自分类Dev

从Postgres记录中的行中获取最大值,并按多列分组

来自分类Dev

在多列 DataFrame 上获取日志值

来自分类Dev

如何使用Anorm从Postgres获取'Char'值

来自分类Dev

如何使用Anorm从Postgres获取'Char'值

来自分类Dev

如何获取列字典的值

来自分类Dev

如何从Java中的多列集合中获取最大值和最小值

来自分类Dev

如何获取匹配MySQL数据库多列值的值

来自分类Dev

如何获取大于多列值的值而不是使用 SQL Server 中的复合键字段

来自分类Dev

如何获取基于多列的最新记录

来自分类Dev

如何从JSON获取多列数据

来自分类Dev

如何获取唯一的多列?

来自分类Dev

如何从 R 中的多列获取计数?

来自分类Dev

如何在多列列表框中获取选定的值

来自分类Dev

如何获取与熊猫中的多列分组相关的所有值

来自分类Dev

如何使用ms访问查询在一行中获取多列值

来自分类Dev

如何从MySQL表中获取具有多列相同值的所有行?

来自分类Dev

如何从SQL中一行的多列中获取最小值

来自分类Dev

如何使用 LINQ 查询从数据库中获取多列值到列表中

来自分类Dev

获取多列之和

来自分类Dev

如何从.sql脚本文件中获取postgres中自动增量列的值?

来自分类Dev

如果存在列,如何获取列的值?

来自分类Dev

熊猫:在多列中连续获取指定值的频率

来自分类Dev

从多列数组中获取最大值

来自分类Dev

获取 ListView 同一行上多列的值

来自分类Dev

Postgres获取具有相同列值的行

来自分类Dev

如何从ObjectDataSource获取数据集列值

Related 相关文章

热门标签

归档