• You can do this - the key is in the syntax:

    UPDATE

    SET

    FROM

    WHERE

    So, I think this is what you are looking for:

    update publishers

    set state = case when publishers.country LIKE ('USA') then '11' else publishers.state end,

    city = case when publishers.pub_id = '8888' then '22' end

    from publishers inner join pub_info on (publishers.pub_id=pub_info.pub_id)

    where publisher.country <> 'FLAPDROL' OR

    publishers.pub_id = '9999'

    Note that the "publishers" in the FROM clause is the SAME (as in the exact same, not a copy as it is in a self-join) as the one in the UPDATE clause.

    And I know you gave this just as an example, but when you are setting the city, if the pub_id isn't 8888, then it will set the city to be NULL (there is no "else" clause there).

    Hope this helps!

    Chad