【问题标题】:Values in Derby DB not ordering correctlyDerby DB 中的值排序不正确
【发布时间】:2016-06-22 19:49:04
【问题描述】:

我试图只显示 Derby 数据库中的前十个值,并尝试了各种查询,但都不起作用。我首先尝试使用的第一个查询是:

Select * from scores order by pscore desc limit 5

但是出现了错误。错误代码是:

Error code -1, SQL state 42X01: Syntax error: Encountered "limit" at line 1, column 43.

然后我尝试将查询简化为:

Select * from scores order by pscore desc 

此查询有效,但顺序不正确。例如,它将前五个值排序为 75、25、200、150、125、100

什么是 Derby 使用的正确查询以仅按顺序显示前 5 个值?

【问题讨论】:

  • 检查pscore 列的数据类型。
  • 数据类型为varchar
  • 对。该列表已正确排序 - 它不是您想要的数据类型。您需要将 varchar 转换为数字。

标签: java netbeans derby


【解决方案1】:

请参阅有关limit here 的德比文档

看起来不支持。还给出了解决方法:use WHERE rownum <= 5FETCH 用于版本 10.7+

更正查询:

SELECT * FROM scores order by pscore desc FETCH FIRST 5 ROWS ONLY;

【讨论】:

  • 好的,我试过了,只显示 5 行有效。有什么方法可以将 order by 子句合并到其中?
  • 我更新了答案,对您的查询进行了必要的更正
  • 出现如下错误信息:Error code -1, SQL state 42X01: Syntax error: Encountered "where" at line 3, column 3
  • 请查看更新后的查询。在本地测试,应该可以工作。
猜你喜欢
  • 1970-01-01
  • 2015-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-11
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多