[GIS] Using Elseif Conditional Statement in QGIS Field Calculator

field-calculatorqgis

I am trying to write an ELSEIF conditional statement in QGIS Field Calculator (version 1.8.0). I have used an example I found online:

CASE WHEN val < 0 THEN 'negative'
  WHEN val = 0 THEN "neutral'
  ELSE 'positive'
END

I modified the statement as follows:

CASE WHEN  "GRID_ID"  = 1 THEN 'complete'
  ELSEIF  "GRID_ID"  = 2 THEN "in progress'
  ELSE 'not started'
END

This statement would not run, the Output preview stated Expression is invalid. The more info stated: Parser Error: syntax error, unexpected COLUMN_REF, expecting WHEN or ELSE or END

If anyone has had this error, what did you do to fix it?

Best Answer

You have a few problems in your modified statement.

  • Inconsistent use of quotes around "in progress'
  • You don't need quotes around column names.
  • You're using an "ELSEIF" when it should be a "WHEN".

The following should resolve all three issues and works for me in 1.8.0:

CASE WHEN GRID_ID = 1 THEN 'complete'
  WHEN GRID_ID = 2 THEN 'in progress'
  ELSE 'not started'
END
Related Question