• Along the lines of what GilaMonster said I pass strings that I need to use in "Where in" quite a bit. This is what I use:

    I have this funciton that I got off the web somewhere:

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    CREATE FUNCTION [dbo].[DelimitedStringToTable](@String varchar(8000), @Delimiter char(1))

    returns @temptable TABLE (items varchar(8000))

    as

    begin

    declare @idx int

    declare @slice varchar(8000)

    select @idx = 1

    if len(@String)<1 or @String is null return

    while @idx!= 0

    begin

    set @idx = charindex(@Delimiter,@String)

    if @idx!=0

    set @slice = left(@String,@idx - 1)

    else

    set @slice = @String

    if(len(@slice)>0)

    insert into @temptable(Items) values(@slice)

    set @String = right(@String,len(@String) - @idx)

    if len(@String) = 0 break

    end

    return

    end

    GO

    I use it like this:

    declare @myVar varchar(50)

    set @myVar = '500, 510, 5201, 580, 630, 460, 470, 480, 490'

    when ProdGrpCode in (Select * from dbo.DelimitedStringToTable(@myVar,',')

    The first parameter is the string to parse and the second in the character that is the delimiter. It’s the equivilant of selecting where in a sub select of a table.