您的位置:首页 > 数据库

SQL合并多表查询记录的存储过程

2010-07-26 17:08 78 查看
思路:将查询到的记录保存进一个临时表,再在临时表中进行查询,用完后删除临时表;

select * from dbo.PE_Nodes
CREATE PROCEDURE [dbo].[PR_GetNodeInfoByNodeID]
@Nodeid INT

declare
@str varchar(300),
@id varchar(300),
@m int,
@n int
select * into temp from dbo.PE_Nodes where 1=0 --select * into 表A from 表B:只复制表解构,不复制数据;
set @str=SUBSTRING((select arrChildID from dbo.PE_Nodes where NodeIdentifier = (select NodeIdentifier from dbo.PE_Nodes where NodeID =Nodeid )),0,300)
set @m=CHARINDEX(',',@str)
set @n=1
WHILE @m>0
BEGIN
set @id=substring(@str,@n,@m-@n)
set @n=@m+1
set @m=CHARINDEX(',',@str,@n)
Insert into temp Select * from dbo.PE_Nodes where NodeID = @id --将查到的表数据插入到临时表
END
select * from temp
drop table temp --删除临时表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: