Hi,
Can't this be done with the simple use of case when condition? Something like:
CASE WHEN "field_1"= 20 THEN 'something True' ELSE 'something false' END

Envoyé depuis mon HTC

----- Reply message -----
De : "Enrico Ferreguti" <enrico...@gmail.com>
Pour : "Alexandre Neto" <senhor.n...@gmail.com>
Cc : "QGIS User" <qgis-user@lists.osgeo.org>
Objet : [Qgis-user] How evaluate a string as an expression in expression builder
Date : jeu., févr. 26, 2015 15:52

I developed a plugin called refFunctions v1.0 that extends expressions with a 
new group of functions.
In Expression calculator, under the group 'Reference' you will find a function 
called dbquery(targetLayer,targetField,whereClause)


It was developed keeping in mind the reference to other layers, but I think you 
can use it with the same layer. 

You can pass the field containing conditional expression in whereClause 
parameter and retrieve the same field used in where clause. 
I you get NULL the test is false otherwise is true.


for example (with field "condition" containing 'testField = 1'):


CASE
WHEN dbquery('samelayer','testFiled',"condition") = NULL THEN 0

ELSE 1

END



Pay attention to quotes!




Here is the description:

dbquery function

Retrieve first targetField value from targetLayer when whereClause is true 
Syntax 
dbquery(targetLayer,targetField,whereClause) 
Arguments 
targetLayer → the name of a currently loaded layer, for example 'myLayer'.
targetLayer → a field of targetLayer whom value is needed, for example 
'myField'. In case of multiple results only the first is retrieved. If 
targetLayer = '$geometry' geometry value is retrieved 
whereClause → a valid expression string without duoble quotes to identify 
fields, for example 'field1 > 1 and field2 = "foo"' 

Example 
dbquery('myLayer','myField','field1 > 1 and field2 = "foo"') 
dbquery('myLayer','$geometry','field1 > 1 and field2 = "foo"') 






2015-02-26 14:00 GMT+01:00 Alexandre Neto <senhor.n...@gmail.com>:
Hello all,
Does any one know how if it's possible to evaluate an all string as an 
expression in expression builder.

What I'm aiming to be able to do is to dynamicly create expression based on 
other fields. So Imagine I have attribute with a string like this:

'"field_1" = 20'

Is there a way to evaluate this as an conditional expression?

Thanks,

Alexandre Neto


_______________________________________________

Qgis-user mailing list

Qgis-user@lists.osgeo.org

http://lists.osgeo.org/mailman/listinfo/qgis-user
_______________________________________________
Qgis-user mailing list
Qgis-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-user

Reply via email to