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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle中過程/函式返回結果集Oracle函式
- JAVA + Oracle儲存過程返回查詢結果集JavaOracle儲存過程
- MySQL in 查詢,並通過 FIELD 函式按照查詢條件順序返回結果MySql函式
- iOS FMDB有返回結果集和無返回結果集iOS
- PostgreSQL 查詢替換函式SQL函式
- java使用mybatis 呼叫函式返回一個遊標結果集JavaMyBatis函式
- Citus 分散式 PostgreSQL 叢集 - SQL Reference(查詢分散式表 SQL)分散式SQL
- 巧用臨時表將大結果集轉換為小結果集驅動查詢薦
- JAVA資料庫處理(連線,資料查詢,結果集返回)Java資料庫
- Mybatis 查詢語句結果集總結MyBatis
- 返回部分結果後,才報單行子查詢返回多行。
- 使用查詢結果更新表的方法
- Python 工匠:讓函式返回結果的技巧Python函式
- python中函式如何返回多個結果?Python函式
- DBeaver 匯出多個查詢結果集
- 備忘:laravel 對查詢結果集可以迴圈where查詢Laravel
- Mysql-基本練習(10-設定分組條件、查詢結果排序、限制查詢結果返回的數量、TRUNCATE刪除表記錄)MySql排序
- SQL 把查詢結果當作"表"來使用SQL
- 使用ROWNUM將導致查詢結果集的固化
- Citus 分散式 PostgreSQL 叢集 - SQL Reference(查詢處理)分散式SQL
- 在HQL select查詢語句中自定義查詢結果返回的資料型別資料型別
- mysql查詢結果多列拼接查詢MySql
- Oracle中實現查詢結果按照in中條件排序 InStr函式Oracle排序函式
- SQL查詢結果集對注入的影響及利用SQL
- Oracle 儲存過程返回結果集|轉|Oracle儲存過程
- Oracle 儲存過程返回結果集 (轉)Oracle儲存過程
- navicat 匯出查詢結果
- mysql匯出查詢結果MySql
- PB帶引數帶結果集的動態SQL查詢SQL
- [ORACLE BUG]查詢結果錯誤--臨時表並行Oracle並行
- Citus 分散式 PostgreSQL 叢集 - SQL Reference(手動查詢傳播)分散式SQL
- MyBatis 返回結果MyBatis
- Laravel 手動建立分頁返回物件結果集Laravel物件
- PostgreSQL 原始碼解讀(178)- 查詢#95(聚合函式)#1相關資料結構SQL原始碼函式資料結構
- PostgreSQL 原始碼解讀(83)- 查詢語句#68(PortalStart函式)SQL原始碼函式
- Mybatis模糊查詢結果為空MyBatis
- ps aux查詢結果解釋UX
- PostgreSQL 函式獲取表DDLSQL函式