【发布时间】:2015-11-23 23:27:31
【问题描述】:
在 SQL Server 和 Oracle 中,不支持加入(或从中选择)返回结果集的存储过程。
在 PostgreSQL 中可以吗?
如果是这样,一个后续问题是:是否可以通过foreign data wrappers 加入 MS SQL Server 数据库中的存储过程??
【问题讨论】:
标签: postgresql
在 SQL Server 和 Oracle 中,不支持加入(或从中选择)返回结果集的存储过程。
在 PostgreSQL 中可以吗?
如果是这样,一个后续问题是:是否可以通过foreign data wrappers 加入 MS SQL Server 数据库中的存储过程??
【问题讨论】:
标签: postgresql
PostgreSQL 可以加入存储过程(函数)。表格和行让我们开始。
create schema test;
create table test.test_a (
id integer primary key
);
insert into test.test_a values
(1), (2);
create table test.test_b (
id integer references test.test_a,
n integer not null,
primary key (id, n)
);
insert into test.test_b values
(1, 1), (1, 2), (1, 3), (2, 1), (2, 2);
一个简单的函数。
create or replace function test.return_test_b ()
returns table (
id integer,
n integer
) as
$$
select * from test.test_b
$$ language sql;
现在你可以直接加入了。
select A.id, B.n from test.test_a A
inner join test.return_test_b() B on A.id = B.id;
身份证号
--
1 1
1 2
1 3
2 1
2 2
【讨论】: