SQLServer2008运用存储过程拆分字符串并查询结果并把结果存入临时表中。

实现的结果,输入   1,2,3,

去另一表中查 输出 one,two,three

我这里就是把数据存在一个临时表中 后面输出后自己处理成  

one,two,three

 

存储过程 :

create procedure [dbo].[Proc_GETNAME]( 
@inUserID VARCHAR(50),--输入的要拆分的字符串用户不为空的
@inDepartID VARCHAR(50)--部门不为空的
)
 AS 
 
declare  @str  varchar(300),@id  varchar(300),@m  int,@n  int  
create table #tab(name varchar(50),value int) --把查询出来的数据存放 在这个表中

 if(@inUserID <>'')
set  @str=@inUserID  
  if(@inDepartID <>'')
  set  @str=@inDepartID 
  
set  @m=CHARINDEX('|',@str)  
set  @n=1  
 
WHILE  @m>0 
begin
  set  @id=substring(@str,@n,@m-@n)  
         if(@inUserID <>'')
          BEGIN
            insert into #tab select  userName_vc ,userId_i from [OA_OrgDB].[dbo].[User] 
          where userId_i = @id --把查询出来的数据存入表中
          print '1'
          end
          
          if(@inDepartID <>'')
          begin
          insert into #tab select  deptName_vc,deptId_i from [OA_OrgDB].[dbo].[Department] 
          where deptId_i = @id
          print '2'
          end
          
       set  @n=@m+1  
       set  @m=CHARINDEX('|',@str,@n) 
    
         print @m
        print @id
 
  
  end
      select * from #tab
      --drop table #tab

 

虽然写完了 感觉挺简单,可是写的时候是真费劲啊。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值