• Another option using a table valued function. In this example I use an outer join but if you only want the code '82' values an inner join would work as well.

    /* Table valued function for parsing a delimited array into a table */

    CREATE FUNCTION [dbo].[tvfParseDelimitedString]

    (

    @s-2 NVARCHAR(MAX) -- Delimited input string

    ,@Split CHAR(1) -- Delimiter used for the input string

    )

    RETURNS @Table TABLE

    (

    [ID] INT NOT NULL IDENTITY(1,1)

    ,[Value] NVARCHAR(MAX) NULL

    ,PRIMARY KEY ([ID])

    ,UNIQUE ([ID])

    )

    BEGIN

    DECLARE @X XML

    SET @X = CONVERT(XML,'<root><s>' + REPLACE(@S,@Split,'</s><s>')+'</s></root>')

    INSERT INTO @Table

    SELECT LTRIM(T.c.value('.','NVARCHAR(MAX)')) AS [Value]

    FROM @X.nodes('/root/s') T (c)

    RETURN

    END

    /* Create a set of test data */

    IF OBJECT_ID('tempdb..#TempTable') IS NOT NULL

    DROP TABLE #TempTable

    CREATE TABLE #TempTable (ProdGrpCode INT)

    INSERT INTO #TempTable

    SELECT '500' UNION SELECT '510' UNION SELECT '5201' UNION

    SELECT '580' UNION SELECT '630' UNION SELECT '460' UNION

    SELECT '470' UNION SELECT '480' UNION SELECT '490' UNION

    SELECT '777' UNION SELECT '888' UNION SELECT '999'

    /* The final query that takes the delimited input */

    /* and assigns the proper code */

    DECLARE @myVar AS NVARCHAR(50)

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

    SELECT

    ProdGrpCode

    ,(CASE

    WHEN ProdGrpCode = Value THEN 82

    ELSE 99

    END) AS Code

    FROM

    #TempTable AS t

    LEFT OUTER JOIN

    (SELECT Value FROM dbo.tvfParseDelimitedString(@myVar,',')) AS v

    ON t.ProdGrpCode = v.Value

    Output:

    [font="Courier New"]ProdGrpCodeCode

    46082

    47082

    48082

    49082

    50082

    51082

    5201 82

    58082

    63082

    77799

    88899

    99999[/font]