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?
1 Answer 1
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
-
2"You don't need quotes around column names." You don't but I would still recommend it as it will help the syntax highlighter mark that part as a column.Nathan W– Nathan W2012年11月03日 01:20:21 +00:00Commented Nov 3, 2012 at 1:20
-
@NathanW - the Syntax highlighter marks column names in red whether you use quotes or not, at least it does in my 1.8.0 install.GIS-Jonathan– GIS-Jonathan2012年11月05日 12:23:18 +00:00Commented Nov 5, 2012 at 12:23
-
1It does indeed. That is pretty embarrassing, I should have known it does that as I wrote the highlighter ;)Nathan W– Nathan W2012年11月05日 13:17:59 +00:00Commented Nov 5, 2012 at 13:17
-
@NathanW - Understandable. I can barely remember what I wrote yesterday after all. ;-)GIS-Jonathan– GIS-Jonathan2012年11月05日 14:53:46 +00:00Commented Nov 5, 2012 at 14:53