从表中选择时,条件可变化,高手都来看看,谢谢了
表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