2016-04-25 45 views
1

我正在一个包含葡萄酒名称,价格等的大型数据库... 我想查询一个每瓶10美元或更少的霞多丽表,但我一直得到10美元的结果。SQLite小于或等于只返回相同的结果

dbGetQuery(db, "SELECT Name, Price FROM Wines 
     WHERE price<=10 
     AND name LIKE '%Chardonnay%'") 

如果我只是查询霞多丽,我可以看到有一些低于$ 10

895             Chardonnay 12 
896           Reserve Chardonnay 16 
897             Chardonnay 10 
898          Wyckoff Vyd Chardonnay 21 
899           Reserve Chardonnay 29 
900            Fume Chardonnay  9 
901         Barrel Fermented Chardonnay 13 
902           Reserve Chardonnay 11 
903             Chardonnay 10 
904         Woodburne Cuvée Chardonnay 14 
905             Chardonnay  7 

当我运行上面的查询,我得到这样的:

50        Chardonnay 10 
51        Chardonnay 10 
52        Chardonnay 10 
53        Chardonnay 10 
54        Chardonnay 10 
55        Chardonnay 10 

全部55个结果有10作为价格

我觉得它必须是一个格式问题,但我还没有能够得到它的权利

+3

'SELECT DISTINCT typeof(Price)FROM Wines'的输出是什么? –

回答

2

SQlite使用动态类型,您可以将字符串插入到int列中。可能你的价格是作为字符串插入的,或者你的价格列不是数字(整数,浮点数)列。确保该栏的类型正确,并将价格值作为正确的类型插入。

+0

谢谢,这全是文字。从我能找到的没有什么好的方法来改变SQLite中的数据类型,这是否正确?我更改了原始数据框中的值,然后将其重新加载到我的数据框中,现在查询正常工作。 –

+0

确实没有办法改变数据类型,你需要删除并重新创建表。 –

相关问题