我有一个带有列点[VARCHAR]
的表当我使用大于80的点数记录并按降序排序时。我只得到99的数字。实际上我得分大于100.
尝试按升序添加+0但奇怪的结果, 从8点
获取数据答案 0 :(得分:3)
由于此列为varchar
进行排序比较,其中子句以按字母顺序完成,而不是数字。这意味着'80'> '100'因为'8'< '1'。您需要将此列转换为integer
。使用CAST(points AS INTEGER)
代替点。
答案 1 :(得分:0)
为什么不使用points
Integer?
SELECT * FROM
表WHERE
点> 80 ORDER BY
点DESC