• If the controlling column(s) are all from the same table, I suggest a computed column. That leaves the defining logic in only a single place, and allows the calc'd value to be used just like any other column: in SELECT list, WHERE clause, ORDER BY clause, etc..

    ALTER dbo.target_table

    ADD target_column AS

    case

    when source_column_1 = 'ABC' then 'XYZ'

    when source_column_2 = '123' then 'PDQ'

    when source_column_3 = 'DEF' then 'BLAH'

    when source_column_3 = 'FOO' then 'Fighters'

    when source_column_3 = 'DOG' then 'CAT'

    when source_column_3 = 'RED' then 'Blue'

    when source_column_3 in ('UP','DOWN') then 'Strange'

    when source_column_4 = 'ICE' then 'Tea'

    when source_column_4 = 'PHX' then 'Phoenix'

    when source_column_4 = 'YES' then 'Indeed'

    when source_column_4 in ('CAR','BOS') then 'Stuff'

    end

    Then, for example:

    SELECT target_column, ...

    FROM ...

    WHERE

    target_column IN ('Tea', 'Indeed')

    ORDER BY

    target_column

    SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.