关 键 词:
近来在一个project中用到了pg(postgresql),客户需要很多表格,有些是典型的中国式报表(接触过的人都知道非常的复杂),所以分了两
种方法解决:一、不需要用参数控制数据的,用view;二、需要用参数控制数据的用function;
第一类比较简单,只要会sql就可以解决;第二类中,最复杂的是要进行数据处理的,(比如每页加入小计,最后要有合计的),查了一下资料,在8.3中有两
种方法可以解决这个问题,现总结如下: 一、使用returen next 例子如下:
CREATE OR REPLACE FUNCTION fun1() RETURNS SETOF tbl AS
$
DECLARE
r tbl%rowtype;
BEGIN
FOR r IN SELECT * FROM tbl
LOOP
-- 进行处理
RETURN NEXT r; -- 返回当前选中的行
END LOOP;
RETURN;
END
$
LANGUAGE 'plpgsql' ;
SELECT * FROM fun1();二、使用return query(8.3中的新方法,据说性能要比上面的好)
CREATE OR REPLACE FUNCTION fun2() RETURNS SETOF tbl AS
$
BEGIN
--数据处理
return query SELECT * FROM tbl;
END
$
LANGUAGE 'plpgsql' ;
SELECT
* FROM
fun2();有人说“一图胜千言”,个人习惯,宁愿别人给我例子,也不要一大堆理论的说教,所以只给出例子。如果你会写plpgsql函数,只需要把
--注释的地方换成你需要的处理语句就行了,我就不再啰嗦了
^_^;如果不懂,要么自己学习一下函数的写法,要么等我什么时候写写pg的函数用法(如果有需要强烈的话^_^)
ps:为了实际运行上面的代码你需要先运行下面的代码: create table tbl(col1 int,col2 text); INSERT
INTO tbl VALUES (1,'AAA'); INSERT INTO tbl VALUES (2, 'BBB');
分享到:
相关推荐
通过本文介绍的方法,我们学会了如何在PL/pgSQL函数中返回结果集,包括使用循环遍历查询结果和直接使用SQL语句两种方式。这些方法对于处理数据库中的批量数据非常有用,可以帮助开发者更加高效地管理数据操作。
支持2万+汉字转拼音
安装和使用"orafce-3.1.2"扩展,通常需要在PostgreSQL服务器上执行SQL命令进行安装,并在查询中调用这些函数。需要注意的是,虽然orafce提供了很大的兼容性,但并非所有Oracle的特性都能完全复现,所以在实际应用时...
1. 博客:PostgreSQL的学习心得和知识总结(六十七)|语法级自上而下完美实现MySQL数据库的 IF函数和IFNULL函数 的实现方案
PostgreSQl函数部分阅读笔记 关于函数部分在PostgreSQL中的实现问题的解释 聚集函数
在转换时,应特别注意这些函数在两种数据库系统中的差异,以及如何适当地替换它们。 #### 2.9 ORDER BY, GROUP BY & HAVING ORDER BY、GROUP BY和HAVING子句用于对查询结果进行排序和分组。DB2与GreenPlum/...
在PostgreSQL中,有时需要利用C语言来编写高性能或安全的关键功能,这可以通过创建外部函数实现。本教程将详细介绍如何在PostgreSQL中实现C语言外部函数的调用,包括环境配置、源代码编写、编译、创建函数以及测试...
支持2万+汉字转拼音首字母
postgresql汉字转拼音首字母函数,用于批量生成助记码、拼音码,包含两万多个汉字。
PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (函数和操作符 函数和操作符 函数和操作符 <一>) 25 一、逻辑操作符: 一、逻辑操作符: 一、逻辑操作符: 一、逻辑操作符: .25 四、字符串函数和操作...
首先,我们需要理解自定义函数在PostgreSQL中的作用。自定义函数允许用户根据特定需求扩展数据库的功能,这些函数可以是SQL级别的,也可以是C语言级别的。当SQL级别的函数不能满足复杂计算或性能要求时,我们可以...
postgresql中判断是否为数字和是否为时间日期格式的相关函数,类似于sqlserver中的isDate和isnumeric函数
在 .NET 中,可以使用 Npgsql 组件来连接 PostgreSQL 数据库,并使用函数来查询数据。例如,以下是一个使用函数来查询数据的 C# 代码: ```csharp using (NpgsqlConnection conn = new NpgsqlConnection...
两个 plpgsql 函数,用于在整个数据库的所有或部分表中查找字符串或正则表达式的出现。 它返回包含该值的行的表、列和ctid ,以及在正则表达式搜索的情况下的值本身。 搜索可以限于表和/或模式的阵列。 可选择通过...
对postgresql数据库中不规则的数据批量处理查询,有些是全角的,需要转换查询,匹配,可以使用这个方法postgres全角转半角函数.txt
在PostgreSQL数据库系统中,字符串操作函数是进行数据处理和查询时不可或缺的一部分。这些函数提供了对文本字符串的各种操作,如拼接、截取、查找、替换等,极大地丰富了SQL语句的功能。以下是对PostgreSQL字符串...
网上传的postgreSQL汉字转拼音的方法,是针对9.3的版本(相信你要是8.4的也搜到了但不能直接用,才来看我的),尝试了8.4的版本来做拼音处理。发现网上的《postgreSQL汉字转拼音》里面坑比较多,尝试纠正了一下,发...
在PostgreSQL中,某些转换是自动发生的(隐式转换),而有些则需要显式进行(如使用 cast() 函数)。例如,整数类型可以直接赋值给数值类型的列,而字符串转换为数值则需要显式的转换。 在对数据进行类型转换时,还...
综上所述,《PostgreSQL的Window分析函数源码优化》一文提出了一种基于临时窗口和组共享思想的优化方案,该方案有效地解决了Window函数在大数据处理中的性能瓶颈问题。通过实验验证,该方案不仅能够显著提高特定类型...
为了在PostgreSQL中实现与SQL Server `ISDATE`相似的功能,我们可以使用PL/pgSQL语言编写一个自定义函数。具体代码如下: ```sql CREATE OR REPLACE FUNCTION isdate(in_date text) RETURNS integer AS $BODY$ ...