sql - 如何对十进制数中的点后的列进行排序 - Ms access

标签 sql database sorting ms-access filter

我想对列进行排序,例如... 例子 : 1.1, 1.2, 1.3, . . . ,1.9, 1.10, 1.11, 1.12, . . ,2.1, 2.2, 2.3, . . ,2.9, 2.10, 2.11, . . ,3.1, 3.2, ...等等..

我试过了,

    SELECT SectionName.UnderISMDocNumber
    FROM SectionName
    ORDER BY SectionName.UnderISMDocNumber;

But I get this kind of result

谁能指导我?如何在 Ms Access 中过滤此列?

最佳答案

您可以按将第二部分转换为整数的奇特表达式排序,然后按此排序:

SELECT 
    UnderISMDocNumber
FROM 
    SectionName
ORDER BY 
    Int(Val([UnderISMDocNumber])), Val(Mid(Str(CCur(Val([UnderISMDocNumber]))-Int(Val([UnderISMDocNumber]))),3));

但是你遇到了严重的麻烦,因为当你使用像 3.03 这样带有前导零的条目时,你混合了字符串排序和数字排序,如你所见:

UnderISMDocNumber
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.11
1.12
1.13
2
2.1
2.2
3.01
3.10
3.02
3.03
3.04
3.5
3.11
3.12
3.13

因此,要么在 Val([UnderISMDocNumber]) 上使用零和纯数字排序,要么在第二部分中不使用前导零。你不能两者兼得。

关于sql - 如何对十进制数中的点后的列进行排序 - Ms access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52089531/

相关文章:

php - 选择 mysql 中的相邻行 - 但是当使用特定列的字母顺序而不是 ID 的数字顺序时

php - 查询后合并行

php - 奇怪的 : can't specify target table for update in FROM clause

php - 如何 $_REQUEST 数据库创建的选项?

python - 如何对二进制值数组的行进行排序,就好像它们是长二进制数一样?

php - 如何将登录成员(member)下的成员(member)表与玩家表合并?

php - 将数据发送到 JSON 以实现数据库连接

Android Realm 找到前 N 个元素

sorting - 无法在一片结构中搜索项目

php - 按最高值对 n 个项目进行多维自定义排序