首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

从表中选择时,条件可变化,高手都来看看,多谢了

2012-01-18 
从表中选择时,条件可变化,高手都来看看,谢谢了表aIDNAME1XX2XX13XX24XX3在存储过程中,传递参数为ID或ID串

从表中选择时,条件可变化,高手都来看看,谢谢了
表a
ID         NAME
1               XX
2               XX1
3               XX2
4               XX3
在存储过程中,传递参数为ID或ID串和一个标识Flag
IF(Flag   =   0)                     --表明传递的是一个ID,     比如ID为     1
IF(Flag   =   1)                     --表明传递的是一个ID串,比如ID串   为:   1,2,3
请问我该如何根据ID来查询?

[解决办法]
IF(Flag = 0) --表明传递的是一个ID, 比如ID为 1
--这种情况好办

IF(Flag = 1) --表明传递的是一个ID串,比如ID串 为: 1,2,3
--这种情况你可以先把1,2,3放到一个表变量里:@t(id)
1
2
3

然后则可查询, select * from YourTable where ID in(select id from @t)
[解决办法]
declare @a table(ID int, CarID varchar(10), CarNo varchar(10))
insert @a select 1 , '001 ', 'AAAAAA '
union all select 2, '002 ', 'BBBBBB '
union all select 3, '003 ', 'CCCCCC '

declare @s varchar(10)
set @s= '1,3 '
select * from @a where charindex( ', '+ltrim(id)+ ', ', ', '+@s+ ', ')> 0

热点排行