SQL 降序值不正确
Posted
技术标签:
【中文标题】SQL 降序值不正确【英文标题】:SQL Descending value incorrect 【发布时间】:2019-04-20 18:46:15 【问题描述】:我正在为一个游戏创建一个仪表板项目,在我的表格中,高分显示为 900,但是有些值高于该值,这怎么可能。
这是我的原型网站的示例截图 Sample Image Here
这是我使用的查询 显示高分
SELECT max( highscore ) as max FROM users
餐桌
SELECT id,username, highscore FROM users ORDER BY highscore DESC
这是我的表格格式
Ranking || Highscore ||
1 || 945 ||
2 || 905 ||
3 || 823 ||
4 || 3457 ||
5 || 2680 ||
我希望最高值 (3457) 排在第一位,但 945 总是排在首位,并且顺序被破坏了我希望提供的示例图像能帮助我在网上解释事情真的很糟糕
谢谢,给您带来的不便深表歉意
【问题讨论】:
您没有为我们提供足够的信息来处理。我的第一个想法是 MAX 被意外地用于字符串,因为 9 高于 2。这就是我的逻辑所说的。 哎呀,我真的不擅长在网上解释事情 运行sql语句desc users;
并发布输出。 (编辑您的问题并添加它,格式化,不要放在评论中)
向我们展示您的数据库架构。
抱歉回复晚了,我已经编辑了我的问题,再次抱歉
【参考方案1】:
也许您将 Highscore 列声明为 varchar?如果您尝试此查询:
SELECT id,
username,
highscore
FROM users
ORDER BY CAST(highscore as int) DESC
和
SELECT max( CAST(highscore as int) ) as max
FROM users
如果你把它转换成整数会输出什么?
【讨论】:
以上是关于SQL 降序值不正确的主要内容,如果未能解决你的问题,请参考以下文章