Wednesday, 8 June 2016

Using Elseif Conditional Statement in QGIS Field Calculator?


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?



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

No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...