比较运算符在 SQL 中无法正常工作

问题描述 投票:0回答:1

我试图在表中查找“值”大于 1 亿 (100,000,000) 的条目,但我的查询返回不符合该标准的值。我有什么遗漏的吗?下面显示的是我的查询和一些返回值。

SELECT *
FROM cheese_production cp
WHERE cp.Value > 100000000
ORDER BY Value ASC;

10004000 |
10018000 |
10020000 |
10021000 |
10027000 |
10028000 |
100323000 |
10033000 |
100394000 |
10044000 |
100394000 |

理想情况下,它只会返回以下值:

100323000 |
100394000 |
100394000 |
sql sqlite data-science dbeaver
1个回答
0
投票

字符串(如

varchar
)的排序方式与数字不同。就像 AAB 在 AA 之后一样,“1001”在“100”之后。 “2”也是如此。

如果你想像数字一样对它们进行排序,请将它们转换为整数。

SELECT *
FROM cheese_production cp
WHERE cast(cp.Value as integer) > 1000
ORDER BY Value ASC;

示范

© www.soinside.com 2019 - 2024. All rights reserved.