Using parametrized "IN"

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • mironline
    New Member
    • May 2008
    • 24

    Using parametrized "IN"

    dear friends


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

    for exp;

    Code:
    select * from users where id in (1,2) 
    // return 2 rows

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

    Code:
    declare @id nvarchar(3)
    set @id = '1,2'
    select * from users where id in (@id)

    please help me to find good solution .

    thanks
  • ck9663
    Recognized Expert Specialist
    • Jun 2007
    • 2878

    #2
    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

    Comment

    • east7
      New Member
      • Jul 2009
      • 7

      #3
      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

      Comment

      Working...