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