关于存储过程中一个参数表示多个查询条件使用方法的简单处理

发现用VS.NET 2005来写存储过程的代码相当方便顺手,题目所说得问题想了半天,晚上回到家里面装了sqlserver再接着试,终于搞定了。享受ING。
数据如下:
表aaa
name       
-----------
1          
2          
3          
4          
5          
6          
7          
8          
9

表bbb
name        old        
----------- -----------
1           11         
2           22         
3           33         
4           44         
5           55         
6           66         
7           77         
8           88         
9           99 

查询aaa中指定name的记录与bbb作联合所得的数据
ALTER PROCEDURE dbo.a

(
 @input varchar(10),
 @input1 varchar(10)
)
AS
 declare @sql varchar(1000)
set @sql=' SELECT aaa.name,bb.old FROM aaa left join (SELECT name,old FROM bbb where name in ('+@input1+')) bb on bb.name=aaa.name where aaa.name in ('+@input+')'

 print @sql
exec (@sql)

执行结果:

运行[dbo].[a] ( @input = 1,2,3,5, @input1 = 2,3 ).

 SELECT aaa.name,bb.old FROM aaa left join (SELECT name,old FROM bbb where name in (2,3)) bb on bb.name=aaa.name where aaa.name in (1,2,3,5)
name        old        
----------- -----------
1           <NULL>     
2           22         
3           33         
5           <NULL> 

想了半天,经过同事提醒,发现原来可以在存储过程中组织查询语句,用execute来执行,得到结果。
立此存照!

转载于:https://www.cnblogs.com/bgming/archive/2006/11/04/549659.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值