表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来查询?

解决方案 »

  1.   

    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)
      

  2.   

    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