“按顺序排列”如何将其设置为按数字顺序排序

时间:2013-05-23 08:39:06

标签: sql database ms-access

我有一个sql Query,用于为表单中的表生成信息。我希望通过操作订购信息。我的操作编号从1-30开始,但是当我在表格中查看它们时,它会将所有操作从一个开始,然后是两个开始。我知道这是因为该字段是一个文本字段,但有没有办法按数字顺序排序?

enter image description here

4 个答案:

答案 0 :(得分:3)

试试这个

SELECT * FROM Tablename ORDER BY val(operation)

排序编号后必须为非数字

答案 1 :(得分:2)

首选方法是创建一个整数SortOrder列,按所需顺序填充值1到N并按顺序排列。

如果没有您需要根据您的Operation列右侧填充到最大项目长度的计算列进行排序。

尝试类似:

SELECT Operation, Element, Time
FROM YourTable
ORDER BY CInt(Operation) ASC
如果数字中存在句号,

[注意CInt()将无法按预期行事。 CInt(8.6)将最多为9!]

答案 2 :(得分:1)

你的问题是你在带有类型字符串的列上命令你的结果 - 在这种情况下“5 H ......”出现在“12 S ...”之后,因为排序算法首先检查第一个char ...而且只有第一个字符与第二个字符相同...

要获得正确的排序,请在额外的列中选择die partID(作为int或数字)并按partID排序

答案 3 :(得分:0)

您可以包含新列和订单,例如:

SELECT Operation, Element, Time, Qty, Mid(Operation, 1, 2) AS Order
FROM YourTable
ORDER BY Order ASC

注意:如果数字超过2位,则不会大幅缩放。你必须选择空格字符的第一个字符然后再订购。类似的东西:

SELECT Operation, Element, Time, Qty, Mid(Operation, 1, Instr(Operation, " ")) AS Order
FROM YourTable
ORDER BY Order ASC