Le jeudi 13 juin 2013 09:46:16, 梁天辰 a écrit : > Hi all, > > According to page http://www.gdal.org/ogr/ogr_sql.html , I found that <, >, > <= and >= operators are case sensitive.
Hum, it appears that this was true before the rewriting of the OGR SQL engine for GDAL 1.8.0. The current implementation of <, >, <= and >= is also case insensitive as you've noticed... Not sure if we must change the doc or the implementation here... If you use GDAL 1.10.0, and you've built is with SQLite support, you can use the following (convoluted) SQL : "SELECT * FROM " + layername + " WHERE NOT codede != 'capital'" and poDSws->ExecuteSQL(sql,NULL,"SQLite"); so that the SQLite engine is used. Well, why the above works, and not directly "SELECT * FROM " + layername + " WHERE codede = 'capital'" since '=' is case sensitive (by default) in SQLite. If you try this, the SQLite <--> OGR bridge will be smart and will forward the WHERE clause to the OGR SetAttributeFilter() method, that in turns will be evaluated by OGR SQL (for drivers that are not RDBMS). But by using "NOT foo != 'bar'" this optimization isn't triggered and the expression is fully evaluated by the SQLite engine... Even -- Geospatial professional services http://even.rouault.free.fr/services.html _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev