我有一个带有列点的表[VARCHAR]
当我取点数大于80的记录并按降序逐点排序时。我只得到99的数字。事实上,我的分数超过了100。
尝试了添加+0的选项,但奇怪的结果是升序,从具有8个的点获取数据
由于此列是varchar
比较,用于排序,子句按字母顺序执行,而不是按数字执行。这意味着"80">"100",因为"8"<1’。您需要将此列转换为integer
。使用CAST(points AS INTEGER)
而不是仅使用点。
为什么不使用使points
为整数?
SELECT * FROM
表WHERE
点> 80 ORDER BY
点DESC