ya depende de como sea el parametro, puede ser con un query dinamico con una funcion etc, mira te dejo una funcion que te puede servir:
    
Código SQL:
Ver original- CREATE FUNCTION [dbo].[SplitApplication](@applicationid VARCHAR(2000)) 
-   
- RETURNS @RtnValue TABLE  
- ( 
- Id INT IDENTITY(1,1), 
- DATA nvarchar(100) 
- )  
- AS  
- BEGIN  
- DECLARE @Cnt INT, @SplitOn nvarchar(5) 
- SET @SplitOn = ',' 
- SET @Cnt = 1 
-   
- While (Charindex(@SplitOn,@applicationid)>0) 
- BEGIN 
- INSERT INTO @RtnValue (DATA) 
- SELECT  
- DATA = ltrim(rtrim(SUBSTRING(@applicationid,1,Charindex(@SplitOn,@applicationid)-1))) 
-   
- SET @applicationid = SUBSTRING(@applicationid,Charindex(@SplitOn,@applicationid)+1,len(@applicationid)) 
- SET @Cnt = @Cnt + 1 
- END 
-   
- INSERT INTO @RtnValue (DATA) 
- SELECT DATA = ltrim(rtrim(@applicationid)) 
-   
- RETURN 
- END 
-   
- GO 
-   
-   
- how TO USE : 
-   
- SELECT * FROM TABLE WHERE DATA IN ( 
-   
- SELECT DATA FROM SplitApplication('1,1,1,1') 
- ) 
-   
- como la usarias en tu ejemplo: 
-   
-   
- DECLARE @parametro VARCHAR(20) 
- SET @parametro='10,20,30' 
-   
- SELECT * FROM( 
- SELECT *,ROW_NUMBER() OVER(partition BY campo ORDER BY campo) AS rn FROM tabla 
- ) t1 WHERE rn IN (SELECT DATA FROM SplitApplication(@parametro))