我想按升序对表进行排序,但是我需要对之进行排序的字段的值不应该用于这种排序,因为它是随机生成的,并且我不希望它影响
示例:我有ES0420111112和ES0120111113
在这种情况下,值ES0420111112由于开头为04而被认为较高,但我只想在排序时从第六个值开始考虑,即111112
这样,我将首先展示自己ES0420111112,然后展示ES0120111113
我曾尝试创建一个与上一个表类似的辅助表,但切出该列的值并在以后对其进行排序,但是我不知道如何将该过滤器顺序应用于我真正想要的那个表。知道怎么做吗?我想解决方案将在比较两个表时与“索引”的顺序有关。
答案 0 :(得分:0)
您有这样的想法吗?
Try
Dim table As DataTable = New DataTable
table.Columns.Add("Column1")
For i As Integer = 111 To 0 Step -2
Dim row As DataRow = table.NewRow
row.Item("Column1") = "ES012011111" & i.ToString
table.Rows.Add(row)
Next
Dim orderedRows = From record In table
Select Column1 = record.Item("Column1"),
ColumnForOrder = Microsoft.VisualBasic.Right(CStr(record.Item("Column1")), 6)
Order By ColumnForOrder Ascending
For Each row In orderedRows
Console.WriteLine("Column1: " & row.Column1.ToString)
Console.WriteLine("ColumnForOrder: " & row.ColumnForOrder)
Next
Catch ex As Exception
Console.WriteLine(ex.ToString)
End Try