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

思路:将查询到的记录保存进一个临时表,再在临时表中进行查询,用完后删除临时表;

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 --删除临时表

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值