postgresql 循环函数的简单实现操作

我就废话不多说了,大家还是直接看代码吧~

create or replace function aa1(a1 integer[],a2 bigint) returns
void AS $$
declare ii integer;
declare num integer;
 begin
 II:=1;
 num = 1;
 FOR ii IN 1..a2 LOOP
 UPDATE student SET
  id=a1[num]
 WHERE cd_id = ii;
 num = num +1;
 if (num>6) then
 num = 1;
 end if;
 end loop;
 end;
$$ LANGUAGE plpgsql;

select aa1(array[1,4,5,6,7,8],6742)

补充:数据库之postgreSql库的存储过程和循环总结

postgreSql库中存储过程模板

CREATE OR REPLACE FUNCTION p_fx_*** ( OUT v_row INTEGER, OUT v_rote varchar(50), OUT v_log varchar(50))
AS $$
DECLARE
BEGIN

 select count(*) into v_row from *插入表的名字*;
 v_rote := 'SUCCESS';
 v_log := 'SUCCESS';

END
$$
LANGUAGE plpgsql VOLATILE

postgreSql库中循环书写的模板,以实际开发中的sql为例

单层循环

do $$
declare ***:=***;
begin
  while *** loop
  end loop;
end $$;

declare --声明变量,如果声明了变量别忘了加分号;

双层循环

do $$
declare ***:=***;
begin
  while *循环条件* loop
    for i in 1..12 loop
    raise notice '%',*变量名*;
    end loop;
  end loop;
end $$;

raise notice '%',变量名;这是输出语句类似于Java中的print。

将循环放到存储过程中

CREATE OR REPLACE FUNCTION p_fx_*** ( OUT v_row INTEGER, OUT v_rote varchar(50), OUT v_log varchar(50))
AS $$
DECLARE
BEGIN

while *循环条件* loop
    for i in 1..12 loop
    raise notice '%',*变量名*;
    end loop;
  end loop;

 select count(*) into v_row from *插入表的名字*;
 v_rote := 'SUCCESS';
 v_log := 'SUCCESS';
END
$$
LANGUAGE plpgsql VOLATILE

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • PostgreSQL数据类型格式化函数操作

    数据类型格式化函数: PostgreSQL格式化函数提供一套有效的工具用于把各种数据类型(日期/时间.integer.floating point和numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成指定的数据类型. 下面列出了这些函数,它们都遵循一个公共的调用习惯:第一个参数是待格式化的值,而第二个是定义输出或输出格式的模板. 函数 返回类型 描述 例子 to_char(timestamp, text) text 把时间戳转换成字串 to_char(current_timest

  • 在postgresql数据库中判断是否是数字和日期时间格式函数操作

    在编写GreenPlum函数的过程中,遇到要判断字符串是否是数字和日期格式的情况,基于GreenPlum和postgresql的亲缘关系,找到了下面两个函数. --1.判断字符串是否是数字 CREATE OR REPLACE FUNCTION isnumeric(txtStr VARCHAR) RETURNS BOOLEAN AS $$ BEGIN RETURN txtStr ~ '^([0-9]+[.]?[0-9]*|[.][0-9]+)$'; END; $$ LANGUAGE 'plpgsq

  • postgresql合并string_agg函数的实例

    1 有时候我们会需要将多条数据根据一些特别的字段做一些合并.比如下面这个查询,正常会查询出3条数据,但是我们会希望根据create_by 分成两列显示 2 这时候需要用到string_agg函数,先通过group by分组,在进行合并,当然查询结果需要满足group by的限制:sql语句: select create_by,string_agg(videoname,',') as videonames from w008_video_addr_info where id in (4248,53

  • Postgresql去重函数distinct的用法说明

    在项目中我们常会对数据进行去重处理,有时候会用in或者EXISTS函数.或者通过group by也是可以实现查重 不过Postgresql还有自带去重函数:distinct 下面是distinct 的实例: 1.创建表:user CREATE TABLE `user` ( `name` varchar(30) DEFAULT NULL, `age` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `us

  • Postgresql自定义函数详解

    PostgreSQL函数也称为PostgreSQL存储过程. PostgreSQL函数或存储过程是存储在数据库服务器上并可以使用SQL界面调用的一组SQL和过程语句(声明,分配,循环,控制流程等). 语法: CREATE [OR REPLACE] FUNCTION function_name (arguments) RETURNS return_datatype AS $variable_name$ DECLARE declaration; [...] BEGIN < function_body

  • PostgreSQL的generate_series()函数的用法说明

    我就废话不多说了,大家还是直接看代码吧~ SELECT generate_series(1,12) AS month; SELECT generate_series(1,12,1) AS month; SELECT generate_series('2020-01-01'::DATE,'2020-12-31'::DATE,'1 month'::INTERVAL) AS first_of_month; 补充:PostgreSQL使用generate_series函数 填充数据(插入数据) sele

  • PostgreSQL 定义返回表函数的操作

    本文我们学习如何在PostgreSQL 开发返回表函数. 示例数据表 我们使用的示例数据库表为film,如下图所示: 示例1 第一个函数发挥所有满足条件film表记录,这里使用ilike操作,和like类似,但不区分大小写: CREATE OR REPLACE FUNCTION get_film (p_pattern VARCHAR) RETURNS TABLE ( film_title VARCHAR, film_release_year INT ) AS $$ BEGIN RETURN QU

  • PostgreSQL批量修改函数拥有者的操作

    Postgresql如何批量修改函数拥有者,默认创建的函数对象的拥有者为当前创建的用户,如果使用postgres超级管理员创建一个test()的函数,拥有者就是postgres用户.下面讲解下如何批量修改拥有者. 本文演示的Postgresql版本如下: PostgreSQL 9.6.8 相关视图 要查询Postgresql的函数和函数参数需要使用函数视图和参数视图,分别记录了函数信息和参数列表信息. 视图一: information_schema.routines 视图routines包含当前

  • postgresql 循环函数的简单实现操作

    我就废话不多说了,大家还是直接看代码吧~ create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$ declare ii integer; declare num integer; begin II:=1; num = 1; FOR ii IN 1..a2 LOOP UPDATE student SET id=a1[num] WHERE cd_id = ii; num = num +1; if (num>6

  • PHP常用文件操作函数和简单实例分析

    PHP最常用的文件操作就是读取和写入了,今天就主要讲解一下读取和写入函数,并且做一个页面访问的计数功能,来记录一个页面的访问量. fopen():PHP中没有文件创建函数,创建和打开文件都用fopen()函数,函数的形式为:resource fopen( string filename, string mode ) 参数filename为打开或创建并打开的文件名,参数mode为打开的模式,具体模式如下: fread():PHP中可用于读取文件,函数的形式为:string fread( resou

  • JavaScript使用setInterval()函数实现简单轮询操作的方法

    本文实例讲述了JavaScript使用setInterval()函数实现简单轮询操作的方法.分享给大家供大家参考.具体分析如下: 轮询(Polling)是一种CPU决策如何提供周边设备服务的方式,又称"程控输出入"(Programmed I/O).轮询法的概念是,由CPU定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始.轮询法实作容易,但效率偏低. 在JavaScript使用setInterval函数作简单的轮询操作,可以随时

  • Python 循环函数详细介绍

    目录 一.循环函数 1.for循环 2.while循环 3.中断循环 二.循环设计 1.range() 2.enumerate() 3.zip() 三.循环对象 1.什么是循环对象 2.迭代器 3.生成器 4.表推导 一.循环函数 1.for循环 for循环需要预先设定好循环的次数(n),然后执行隶属于for的语句n次. 基本构造是 for 元素 in 序列: statement 举例来说,我们编辑一个叫forDemo.py的文件 for a in [3,4.4,'life']: print a

  • Python函数进阶与文件操作详情

    目录 一.作业回顾 1.格式化输出与%百分号 2.字符串切片 3.字典的定义 二.引用变量与可变.非可变类型 1.引用变量 聊聊变量在内存底层的存储形式 如何验证Python中变量的引用关系 把一个变量赋予给另外一个变量的影响 2.Python中可变和非可变数据类型 问题1:在Python中一共有几种数据类型? 问题2:如何判断一个数据类型是可变类型还是非可变类型? 3.可变类型与非可变类型在函数中的应用 可变类型 不可变类型 三.函数递归(重点难点) 1.前言 2.递推算法 3.什么是递归算法

  • python简单图片操作:打开\显示\保存图像方法介绍

    一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因此,我们这里使用python这个脚本语言来进行数字图像处理. 要使用python,必须先安装python,一般是2.7版本以上,不管是在windows系统,还是linux系统,安装都是非常简单的. 要使用python进行各种开发,就必须安装对应的库.这和matlab非常相似,只是matlab里面叫工具箱

  • python中format()函数的简单使用教程

    先给大家介绍下python中format函数,在文章下面给大家介绍python.format()函数的简单使用 ---恢复内容开始--- python中format函数用于字符串的格式化 通过关键字 print('{名字}今天{动作}'.format(名字='陈某某',动作='拍视频'))#通过关键字 grade = {'name' : '陈某某', 'fenshu': '59'} print('{name}电工考了{fenshu}'.format(**grade))#通过关键字,可用字典当关键

  • JavaScript对JSON数组简单排序操作示例

    本文实例讲述了JavaScript对JSON数组简单排序操作.分享给大家供大家参考,具体如下: 我们经常回使用到数据格式 var arr=[{num:1},{num:3},{num:2}] 如何根据数组里面的JSON数据的某个key进行排序 javascript有一个sort()方法,直接通过 arr.sort()进行排序,默认只对数组的值进行排序,然而以上的数组的值却是个JSON格式的. 我们在看看sort方法的定义: 定义和用法 sort() 方法用于对数组的元素进行排序. 语法 array

  • PHP call_user_func和call_user_func_array函数的简单理解与应用分析

    本文实例讲述了PHP call_user_func和call_user_func_array函数的简单理解与应用.分享给大家供大家参考,具体如下: call_user_func():调用一个回调函数处理字符串, 可以用匿名函数,可以用有名函数,可以传递类的方法, 用有名函数时,只需传函数的名称 用类的方法时,要传类的名称和方法名 传递的第一个参数必须为函数名,或者匿名函数,或者方法 其他参数,可传一个参数,或者多个参数,这些参数会自动传递到回调函数中 而回调函数,可以通过传参,获取这些参数 返回

  • Python定义函数实现累计求和操作

    一.使用三种方法实现0-n累加求和 定义函数分别使用while循环.for循环.递归函数实现对0-n的累加求和 1.使用while循环 定义一个累加求和函数sum1(n),函数代码如下: 2.使用 for循环 定义一个累加求和函数sum2(n),函数代码如下: 3.使用递归函数 定义一个累加求和函数sum3(n),函数代码如下: 二.使用了三种实现累加求和的方法,分别定义了三个函数. 1.对0-100实现累加求和,令n=100,分别调用三个函数, 代码如下: 2. 控制台的输出结果都为:5050

随机推荐