Connecting Tech Pros Worldwide Forums | Help | Site Map

Using parametrized "IN"

Newbie
 
Join Date: May 2008
Posts: 24
#1: Jul 20 '09
dear friends


I have a problem with using "WHERE * IN ( ...... )" in sqlcommand ;

for exp;

Expand|Select|Wrap|Line Numbers
  1. select * from users where id in (1,2) 
  2. // return 2 rows

but occur error when pass the "1,2" with parameters

Expand|Select|Wrap|Line Numbers
  1. declare @id nvarchar(3)
  2. set @id = '1,2'
  3. select * from users where id in (@id)

please help me to find good solution .

thanks

ck9663's Avatar
Expert
 
Join Date: Jun 2007
Posts: 1,925
#2: Jul 22 '09

re: Using parametrized "IN"


Where does your "1,2" value comes from? If it's from a front-end, trying building your query dynamically and use an OR instead.

--- CK
Newbie
 
Join Date: Jul 2009
Posts: 5
#3: Jul 23 '09

re: Using parametrized "IN"


hi,

try this

--
USE tempdb
GO

IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'testSP' AND type = 'P')
DROP PROCEDURE testSP

GO

CREATE PROCEDURE testSP
(
@ids varchar(20)
)
AS
BEGIN

DECLARE @prc nvarchar(300)

SET @prc = 'SELECT * FROM Delta d WHERE d.ID IN (' + @ids + ')'

EXEC(@prc)
END
GO

EXEC testSP '1,2'
GO
--

thanks
east7
Reply