PostgreSQL函式:返回表查詢結果集
一、建立測試表
create table jason01.jason123(aa varchar);
insert into jason01.jason123 values('aa');
insert into jason01.jason123 values('ab');
insert into jason01.jason123 values('bb');
postgres=# select * from jason01.jason123;
aa
----
aa
ab
bb
(3 rows)
二、建立函式
1、方法一:使用%rowtype
CREATE OR REPLACE FUNCTION jason01.fun_resultset()
RETURNS SETOF jason01.jason123
AS
$$
DECLARE
r jason01.
jason123%rowtype
;
BEGIN
FOR r IN SELECT * FROM jason01.jason123 where aa like 'a%'
LOOP
RETURN NEXT
r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql;
postgres=# select jason01.fun_resultset();
fun_resultset
---------------
(aa)
(ab)
(2 rows)
2、方法二:使用record型別
CREATE OR REPLACE FUNCTION jason01.fun_resultset1() RETURNS SETOF jason01.jason123 AS
$$
DECLARE
r record;
BEGIN
FOR r IN SELECT * FROM jason01.jason123 where aa like 'b%'
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql;
postgres=# select jason01.fun_resultset1();
fun_resultset1
----------------
(bb)
(1 row)
3、方法三:使用cursor + record
CREATE OR REPLACE FUNCTION jason01.fun_resultset2() RETURNS SETOF jason01.jason123 AS
$$
DECLARE
C CURSOR FOR SELECT * FROM jason01.jason123 where aa like 'a%';
R RECORD;
BEGIN
FOR r IN C
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql;
postgres=# select jason01.fun_resultset2();
fun_resultset2
----------------
(aa)
(ab)
(2 rows)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27126919/viewspace-2220466/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL 查詢替換函式SQL函式
- Citus 分散式 PostgreSQL 叢集 - SQL Reference(查詢分散式表 SQL)分散式SQL
- java使用mybatis 呼叫函式返回一個遊標結果集JavaMyBatis函式
- iOS FMDB有返回結果集和無返回結果集iOS
- Mybatis 查詢語句結果集總結MyBatis
- Python 工匠:讓函式返回結果的技巧Python函式
- python中函式如何返回多個結果?Python函式
- DBeaver 匯出多個查詢結果集
- 備忘:laravel 對查詢結果集可以迴圈where查詢Laravel
- Citus 分散式 PostgreSQL 叢集 - SQL Reference(查詢處理)分散式SQL
- Mysql-基本練習(10-設定分組條件、查詢結果排序、限制查詢結果返回的數量、TRUNCATE刪除表記錄)MySql排序
- mysql查詢結果多列拼接查詢MySql
- PostgreSQL 原始碼解讀(178)- 查詢#95(聚合函式)#1相關資料結構SQL原始碼函式資料結構
- Citus 分散式 PostgreSQL 叢集 - SQL Reference(手動查詢傳播)分散式SQL
- PostgreSQL 原始碼解讀(83)- 查詢語句#68(PortalStart函式)SQL原始碼函式
- Solr複雜查詢一:函式查詢Solr函式
- PostgreSQL 函式獲取表DDLSQL函式
- Mysql建表、索引、函式、查詢使用中的坑!!!MySql索引函式
- Vlookup大叔與一對多查詢(Excel函式集團)Excel函式
- PostgreSQL 原始碼解讀(82)- 查詢語句#67(PortalXXX系列函式)SQL原始碼函式
- PostgreSQL 原始碼解讀(89)- 查詢語句#74(SeqNext函式#2)SQL原始碼函式
- PostgreSQL 原始碼解讀(90)- 查詢語句#75(ExecHashJoin函式#1)SQL原始碼函式
- PostgreSQL 原始碼解讀(91)- 查詢語句#76(ExecHashJoin函式#2)SQL原始碼函式
- PostgreSQL 原始碼解讀(88)- 查詢語句#73(SeqNext函式#1)SQL原始碼函式
- PostgreSQL 原始碼解讀(93)- 查詢語句#77(ExecHashJoin函式#3)SQL原始碼函式
- PostgreSQL 原始碼解讀(183)- 查詢#99(聚合函式#4-ExecAgg)SQL原始碼函式
- PostgreSQL 原始碼解讀(184)- 查詢#100(聚合函式#5-simplehash)SQL原始碼函式
- PostgreSQL 原始碼解讀(187)- 查詢#103(聚合函式#8 - Struct Review)SQL原始碼函式StructView
- PostgreSQL 原始碼解讀(185)- 查詢#101(聚合函式#6-simplehash)SQL原始碼函式
- PostgreSQL 原始碼解讀(181)- 查詢#97(聚合函式#2-ExecInitAgg)SQL原始碼函式
- PostgreSQL 原始碼解讀(182)- 查詢#98(聚合函式#3-ExecAgg)SQL原始碼函式
- PostgreSQL 原始碼解讀(188)- 查詢#104(聚合函式#8 - ExecAgg Review)SQL原始碼函式View
- PB帶引數帶結果集的動態SQL查詢SQL
- PostgreSQL 原始碼解讀(73)- 查詢語句#58(grouping_planner函式...SQL原始碼函式
- PostgreSQL 原始碼解讀(186)- 查詢#102(聚合函式#7-advance_aggregates)SQL原始碼函式
- PostgreSQL 原始碼解讀(190)- 查詢#106(聚合函式#11 - finalize_aggregate)SQL原始碼函式
- PostgreSQL訪問許可權查詢函式彙總和使用舉例SQL訪問許可權函式
- PostgreSQL Like查詢與正規表示式SQL