<div dir="ltr">Hello all,<div><br></div><div>To make some tests I have the folllowing table:</div><div><br></div><div>
<p style="margin:0px"><span style="font-size:x-large;font-weight:600">General info</span></p>
<p style="margin:0px 0px 0px 8px"><br></p>
<table border="0" style="margin:0px 0px 0px 8px" cellspacing="2" cellpadding="0">
<tbody><tr>
<td>
<p style="margin:0px">Relation type: </p></td>
<td>
<p style="margin:0px">Table </p></td></tr>
<tr>
<td>
<p style="margin:0px">Rows: </p></td>
<td>
<p style="margin:0px">3 </p></td></tr></tbody></table>
<p style="margin:25px 0px 12px 8px"><span style="font-size:x-large;font-weight:600">SpatiaLite</span></p>
<p style="margin:0px 0px 0px 8px"><br></p>
<table border="0" style="margin:0px 0px 0px 8px" cellspacing="2" cellpadding="0">
<tbody><tr>
<td>
<p style="margin:0px">Column: </p></td>
<td>
<p style="margin:0px">geometry </p></td></tr>
<tr>
<td>
<p style="margin:0px">Geometry: </p></td>
<td>
<p style="margin:0px">MULTIPOLYGON </p></td></tr>
<tr>
<td>
<p style="margin:0px">Dimension: </p></td>
<td>
<p style="margin:0px">XY </p></td></tr>
<tr>
<td>
<p style="margin:0px">Spatial ref: </p></td>
<td>
<p style="margin:0px">WGS 84 (4326) </p></td></tr>
<tr>
<td>
<p style="margin:0px">Extent: </p></td>
<td>
<p style="margin:0px">(unknown) (<a href="action:extent/get"><span style="color:rgb(0,0,255)">find out</span></a>) </p></td></tr></tbody></table>
<p style="margin:25px 0px 12px 8px"><span style="font-size:x-large;font-weight:600">Fields</span></p>
<p style="margin:0px 0px 0px 8px"><br></p>
<table border="0" style="margin:0px 0px 0px 8px" cellspacing="2" cellpadding="0">
<tbody><tr>
<td bgcolor="#dddddd" style="padding-top:0px;padding-bottom:0px">
<p align="center" style="margin:0px"><span style="font-weight:600"># </span></p></td>
<td bgcolor="#dddddd" style="padding-top:0px;padding-bottom:0px">
<p align="center" style="margin:0px"><span style="font-weight:600">Name </span></p></td>
<td bgcolor="#dddddd" style="padding-top:0px;padding-bottom:0px">
<p align="center" style="margin:0px"><span style="font-weight:600">Type </span></p></td>
<td bgcolor="#dddddd" style="padding-top:0px;padding-bottom:0px">
<p align="center" style="margin:0px"><span style="font-weight:600">Null </span></p></td>
<td bgcolor="#dddddd" style="padding-top:0px;padding-bottom:0px">
<p align="center" style="margin:0px"><span style="font-weight:600">Default </span></p></td></tr>
<tr>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">0 </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px"><span style="text-decoration:underline">pkuid </span></p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">integer </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">Y </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px"> </p></td></tr>
<tr>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">1 </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">coluna1 </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">text </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">Y </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px"> </p></td></tr>
<tr>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">2 </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">coluna2 </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">real </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">Y </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px"> </p></td></tr>
<tr>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">3 </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">coluna3 </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">integer </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">Y </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px"> </p></td></tr>
<tr>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">4 </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">geometry </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">MULTIPOLYGON </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px">Y </p></td>
<td bgcolor="#f5f5f5" style="padding-top:0px;padding-bottom:0px">
<p style="margin:0px"> </p></td></tr></tbody></table><br>
</div><div><br></div><div>If I do this:</div><div><br></div><div>SELECT</div><div>   *,</div><div>    coluna2/1.0 AS test_field</div><div>FROM</div><div>    testes</div><div><br></div><div>when I open it with DBmanager the test_field return a QSTRING with type name TEXT</div><div><br></div><div><a href="http://imgur.com/GHeMyiW">http://imgur.com/GHeMyiW</a><br></div><div><br></div><div>Using cast:</div><div><br></div><div> SELECT</div><div>   *,</div><div>    cast((coluna2/1.0) as real) AS test_field</div><div>FROM</div><div>    testes</div><div><br></div><div>I get the same.</div><div><br></div><div>Thanks for the help.</div><div><br></div><div>Alexandre Neto</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 10, 2014 at 6:16 PM, Alex Mandel <span dir="ltr"><<a href="mailto:tech_dev@wildintellect.com" target="_blank">tech_dev@wildintellect.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 12/10/2014 09:55 AM, Goyo wrote:<br>
> 2014-12-10 1:50 GMT+01:00 Alexandre Neto <<a href="mailto:senhor.neto@gmail.com">senhor.neto@gmail.com</a>>:<br>
>> Hello,<br>
>><br>
>> When querying a spatialite database in the database manager, if you create<br>
>> some calculations (say add two columns values) the resulting column returns<br>
>> as TEXT instead of the expected numeric field.<br>
>><br>
>> Is this intended or a bug?<br>
>><br>
>> Trying to cast it as real, double or float did not work either.<br>
><br>
> Calculated columns in SQLite do not have a data type, the actual<br>
> values in the column do. If you execute this query:<br>
><br>
> SELECT "col1" + "col2" AS "thevalue", typeof("col1" + "col2") as<br>
> "thetype" FROM "table"<br>
><br>
> You should have "thetype"='real' in every row (provided "col1" and<br>
> "col2" always contain real values) but the column "thevalue" does not<br>
> have a data type assigned.<br>
><br>
> I guess QGIS needs to assign a data type to each column and chooses<br>
> the more general type when the column does not have one without<br>
> looking at the actual values (which could be expensive and also<br>
> misleading if the data change).<br>
><br>
> Goyo<br>
</div></div>> _______________________________________________<br>
> Qgis-user mailing list<br>
> <a href="mailto:Qgis-user@lists.osgeo.org">Qgis-user@lists.osgeo.org</a><br>
> <a href="http://lists.osgeo.org/mailman/listinfo/qgis-user" target="_blank">http://lists.osgeo.org/mailman/listinfo/qgis-user</a><br>
><br>
<br>
There are two ways in SQLITE to get the numeric type you want, you can<br>
do a CAST() or you can force it with a multiplication (*1 or *1.0). It's<br>
really critical if you do a division to *1.0 somewhere in the statement<br>
otherwise you'll only get an integer.<br>
<br>
Note this is not a QGIS specific thing, it applies to general use of SQLITE.<br>
<br>
You said you tried a CAST, can you paste what you tried?<br>
<br>
Thanks,<br>
Alex<br>
_______________________________________________<br>
Qgis-user mailing list<br>
<a href="mailto:Qgis-user@lists.osgeo.org">Qgis-user@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/qgis-user" target="_blank">http://lists.osgeo.org/mailman/listinfo/qgis-user</a><br>
</blockquote></div><br></div>