My problem occurred in a layer that was joined to a csv file. I had "NULL" values where there was no matching join field, as one might expect.
But it turns out that the csv file had the string "null" in an otherwise integer column for missing entries. Thus, when I thought the field calculator was rejecting NULL values, it was actually rejecting the "null" string.
Sorry for the distraction.
On 5/14/2021 4:21 PM, David Strip wrote:
I have a string field I wish to convert to int. A small subset of the records contain NULL.
I tried the following in the field calculator:
caseWhen I look at the preview, the result is correct whether or not the field contains int or NULL. But when I try to run it, I get an error:
when ("bb_usage" IS NULL) then 0
else to_int("bb_usage"")
end
I also tried
caseand get the same error.
when ("bb_usage" IS NULL) then 0
when ("bb_usage" IS NULL) then to_int("bb_usage")
end
I tried
if ("bb_usage" IS NULL, 0, to_int("bb_usage"))same error.
I know there are workarounds, but why don't any of these work? Why does to_int get evaluated on the NULLs?
_______________________________________________ Qgis-user mailing list Qgis-user@lists.osgeo.org List info: https://lists.osgeo.org/mailman/listinfo/qgis-user Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
_______________________________________________ Qgis-user mailing list Qgis-user@lists.osgeo.org List info: https://lists.osgeo.org/mailman/listinfo/qgis-user Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user