求一个存储过程,大家给帮帮忙啊,多谢了

kingssman 2007-07-12 08:55:51
现在需要一个存储过程,要求是这样的,有一个输入参数input,返回一个2维数组。有两个查询语句,把这两个结果集组成2维数组返回。
例如select * from table1 where cond1=input 得出一个结果集{a,b,c},select * from table2 where cond2=input 得到另一个结果集{d,e,f},然后把这两个结果集组成一个二维数组{(a,b,c),(d,e,f)}返回,不知道说清楚没有,请大家帮忙了,多谢多谢。
...全文
173 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingssman 2007-07-12
  • 打赏
  • 举报
回复
好的,例如,我第一个sql语句检索出的结果是{姓名,性别,年龄,兴趣,婚否}(假定前面3列是固定的),第二个sql语句会检索出这样的结果{无名小卒,男,27,‘足球,已婚’},这其中足球和已婚在数据库里是以字符串的形式(‘足球,已婚’)存在一个字段里的,也就是一列,这样我就需要把第二个结果集做一下处理,让它能跟第一个结果集一一对应,然后返回一个结果,譬如说二维数组,进行其它操作
paoluo 2007-07-12
  • 打赏
  • 举报
回复
能不能舉例說明下
kingssman 2007-07-12
  • 打赏
  • 举报
回复
是这样的,其实两个结果集的列数是不同的,希望通过控制最终组成一个二维数组,或者其它可行的返回值,这两个结果集一个是用于输出的标题,有13+n列,n是不定长的,而另一个结果集是用于输出的数据,有13+1列,而这个1是由那个n列拼出来的一个字符串(用逗号分割的),这样查出结果以后需要再处理成相同的列数,不知道大家明白了没有,呵呵
bill024 2007-07-12
  • 打赏
  • 举报
回复
这样?
create table tb1(id int,col varchar(10))
insert tb1 select 1,'a'
union all select 1,'b'
union all select 1,'c'

create table tb2(id int,col varchar(10))
insert tb2 select 1,'d'
union all select 1,'e'
union all select 1,'f'
go

create proc prc1(@input int)
as
begin
declare @s1 varchar(100)
set @s1=''
select @s1=@s1++','+col from tb1 where id=@input
select @s1=stuff(@s1,1,1,'')

declare @s2 varchar(100)
set @s2=''
select @s2=@s2+','+col from tb2 where id=@input
select @s2=stuff(@s2,1,1,'')

select '('+@s1+'),('+@s2+')'
end
go

create proc prc2(@input int)
as
begin
select * from
(
select col from tb1 where id=@input
union all
select col from tb2 where id=@input
)a
end
go

exec prc1 1
exec prc2 1


drop table tb1,tb2
drop proc prc1,prc2

结果1
----------------
(a,b,c),(d,e,f)

(所影响的行数为 1 行)

结果2
col
----------
a
b
c
d
e
f

(所影响的行数为 6 行)
netcup 2007-07-12
  • 打赏
  • 举报
回复
你这两个数组之间有对应关系吗?如果没有对应关系就搞成笛卡儿乘积啦,两个数组的每一行分别对应一次
echiynn 2007-07-12
  • 打赏
  • 举报
回复
....

分真多
paoluo 2007-07-12
  • 打赏
  • 举报
回复
kingssman(无名小卒) ( ) 信誉:100 Blog 加为好友 2007-7-12 9:39:50 得分: 0



好的,例如,我第一个sql语句检索出的结果是{姓名,性别,年龄,兴趣,婚否}(假定前面3列是固定的),第二个sql语句会检索出这样的结果{无名小卒,男,27,‘足球,已婚’},这其中足球和已婚在数据库里是以字符串的形式(‘足球,已婚’)存在一个字段里的,也就是一列,这样我就需要把第二个结果集做一下处理,让它能跟第一个结果集一一对应,然后返回一个结果,譬如说二维数组,进行其它操作


-------------------

能不能貼一下你的兩個表名和字段名?

然後貼出部分數據,以及根據這些數據,你要得到的結果。


kingssman 2007-07-12
  • 打赏
  • 举报
回复
高手们来帮忙啊

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧