title: UPDATE with WITH and CASE - PostgreSQL
body: <p>I'm trying to change the values of a column to be a title constructed from info from two other tables, however I'm running into trouble getting the data in. I currently want to execute this query on all entries to the table. I'm getting a syntax error on CASE and I can't figure out why.</p>
  
  <pre><code>UPDATE campaigns AS cmp
      SET name = (
          WITH ptn AS (SELECT first_name, last_name FROM politicians WHERE id = cmp.politician_id),
              rc AS (SELECT office FROM races WHERE id = cmp.race_id)
  
          CASE
              WHEN rc.office IS NULL OR rc.office = '' THEN ptn.first_name || ' ' || ptn.last_name
              ELSE ptn.first_name || ' ' || ptn.last_name || ' for ' || rc.office
          END
      )
  </code></pre>
  
  <p>This is PostGres 9.4. Here's the error I'm getting</p>
  
  <pre><code>ERROR:  syntax error at or near "case"
  LINE 5:   case
            ^
  
  ********** Error **********
  
  ERROR: syntax error at or near "case"
  SQL state: 42601
  Character: 189
  </code></pre>