1

我正在使用 SQLite Studio,需要在 SUM_D 中显示 20 个最大的数字,但它让我得到最大的“999,987”。至少我有“1 925,886”,但它没有显示。

SELECT NAME, SUM_D FROM borg_1 ORDER BY SUM_D DESC LIMIT 20;

所以在这里你可以看到我的数据结果

我的结构

4

2 回答 2

1

您的问题是您不在列中存储数字SUM_D而是在字符串中。
更新表格,以便将所有内容,替换.为小数点分隔符并删除所有空格:

UPDATE borg_1
SET SUM_D = REPLACE(REPLACE(SUM_D, ' ', ''), ',', '.')

然后您的查询将正常工作。

请注意,您应该将列的数据类型定义为REAL而不是INT因为您想存储浮点数,但仅此一项并不能解决您的问题。

查看简化的演示

于 2021-06-08T17:27:59.493 回答
-1

尝试使用CAST表达式:

SELECT NAME, SUM_D FROM borg_1 ORDER BY cast(replace(replace(SUM_D, ' ','' ),',','.') as NUMERIC) DESC LIMIT 20;

因为 sqlite 可以认为 SUM_D 包含字符串值:

  1. 因为你的价值有 while 空间。
  2. ,改用.

您还有其他选择:在插入数据库之前格式化您的数字。

于 2021-06-08T17:14:04.607 回答