如下表:
序号 医院名称 所在城市
1 安徽省立医院 合肥市
74 蚌埠市第一人民医院 蚌埠市
75 蚌埠市第二人民医院 蚌埠市
76 蚌埠市第三人民医院 蚌埠市
37 合肥丽人女子医院 合肥市
38 合肥心血管病医院 合肥市
39 合肥东方医院 合肥市
40 合肥市中医医院 合肥市
我想写一个存储过程,当用户在页面上输入所要找的城市比如合肥市,就能找出所以合肥市的医院。
之前我是这样做的:
CREATE PROCEDURE 安徽合肥市医院 AS
select * from 安徽省医院 where 所在城市='合肥市'不过要是每个市都要这样做,不是要建好多存储过程。请大家帮忙写用一个存储过程就能实现的。
序号 医院名称 所在城市
1 安徽省立医院 合肥市
74 蚌埠市第一人民医院 蚌埠市
75 蚌埠市第二人民医院 蚌埠市
76 蚌埠市第三人民医院 蚌埠市
37 合肥丽人女子医院 合肥市
38 合肥心血管病医院 合肥市
39 合肥东方医院 合肥市
40 合肥市中医医院 合肥市
我想写一个存储过程,当用户在页面上输入所要找的城市比如合肥市,就能找出所以合肥市的医院。
之前我是这样做的:
CREATE PROCEDURE 安徽合肥市医院 AS
select * from 安徽省医院 where 所在城市='合肥市'不过要是每个市都要这样做,不是要建好多存储过程。请大家帮忙写用一个存储过程就能实现的。
然后,我看到你的SQL:select * from 安徽省医院 where 所在城市='合肥市'
你是用安徽省医院一个表,然后江苏省医院一个表?
为什么不一个医院表搞定,然后添加字段区分省市?
不是实现过程的问题,而是你设计本身有问题了。
全国有多少医院?就算以后真的多到影响查询了,你在省份上建分区索引不就 OK 了?你的存储过程可以这样写create or replace procedure p_qry_hospitalname
(
in_str_provincename in varchar2,
in_str_areaname in varchar2
out_cur_hosplist out sys_refcursor
)
as
begin
open out_cur_hosplist for
select 医院名称 from 医院总表
where 省份 = in_str_provincename
and 地市 = in_str_areanem;
end p_qry_hospitalname;