繁体   English   中英

Postgresql 查询:“大于”语句返回的值小于

[英]Postgresql query: "greater than" statement returns values less than

我正在尝试 select 一列的值大于(>)另一列的行。 但是,它返回值小于另一列的行。

如果我使用小于运算符 (<),它将返回值小于另一列的行,就像预期的那样。 唯一的区别是行的顺序。

列的值是“varchar”,我已将其转换为“整数”用于查询。

询问

SELECT tripcode, CAST(expected AS int), CAST(capacity AS int) FROM super_plan WHERE expected > capacity;

这是大于 (>) 运算符的结果:

预期的 容量
60 310
50 250
80 270
60 270
60 340
80 340
80 250
70 360
50 360
80 360
... ...

询问

SELECT tripcode, CAST(expected AS int), CAST(capacity AS int) FROM super_plan WHERE expected < capacity;

这是小于 (<) 运算符的结果:

预期的 容量
100 310
200 310
230 310
280 310
150 310
100 250
200 250
190 250
160 250
110 270
... ...

我不知道为什么会这样。 我是 sql 的新手。 我已经搜索了 web 和 stackoverflow,但我找不到有用的东西。

实际上,需要将列转换为WHERE子句中的整数,在该子句中进行比较:

SELECT tripcode, expected, capacity
FROM super_plan
WHERE expected::int > capacity::int;

如果您一直需要将这些列用作整数,则可以考虑更改列类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM