I have a point shapefile and a CSV file containing various attributes and three columns (here: street,num,addnum) based on which I would like to join both tables like


Since 'Straße' might be abbreviated or not and lower/uppercase might not be used consistent, I generate a virtual field adr for each table upon wich I'd like to build a join by an expression like

replace(lower(if("addnum" is null, "street" || "num", "street" || "num" || "addnum")),'str.','straße')

I create a join on the point shapefile like this:

enter image description here

but as a result I get NULL values for the prefixed joined attributes/fields:

enter image description here

What might be the problem? Virtual fields not suitable for joins? [QGIS 2.14.5LTR]

  • 2
    Works fine for me (tested on QGIS 2.16.1). This issue was reported and fixed a few months ago so perhaps try the latest QGIS 2.14.7 LTR or indeed QGIS 2.16 ;)
    – Joseph
    Oct 19, 2016 at 12:40
  • 2
    You can't imagine how valuable this comment is to me. Our IT service provider is in the opinion that it is not necessary to update the LTRs, thats why 2.14.5, and this strongly helps me argue not to keep old versions :-) +1. Oct 19, 2016 at 12:58
  • 1
    Let's hope they listen to you! =)
    – Joseph
    Oct 19, 2016 at 13:00
  • they do, at least they're working on it!!! @Joseph if I should meet you irl some day, i buy you a beer ;-) Nov 24, 2016 at 13:56
  • Great! That's good news! And I would very much look forward to it ;)
    – Joseph
    Nov 24, 2016 at 13:59

1 Answer 1


As mentioned in my comment, this works for QGIS 2.16. I also downloaded and tested this on QGIS 2.14.7 LTR and it works too.

So virtual fields are suitable for joins, you just need to upgrade ;)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.