我正在尝试对Datatables进行分组排序。截至目前,我的数据如下:
+-------+-----+--------+ | rowno | mno | result | +-------+-----+--------+ | 1 | 80 | 20 | | 1 | 81 | 10 | | 1 | 82 | 30 | | 2 | 80 | 40 | | 2 | 81 | 50 | | 2 | 82 | 60 | | 3 | 80 | 70 | | 3 | 81 | 60 | | 3 | 82 | 50 | +-------+-----+--------+
根据要求,我将选择一个特定的mno,让我们说81然后根据81的结果,即10,50和60,我想按降序排序整个组。这意味着结果将是:
+-------+-----+--------+ | rowno | mno | result | +-------+-----+--------+ | 3 | 80 | 70 | | 3 | 81 | 60 | | 3 | 82 | 50 | | 2 | 80 | 40 | | 2 | 81 | 50 | | 2 | 82 | 60 | | 1 | 80 | 20 | | 1 | 81 | 10 | | 1 | 82 | 30 | +-------+-----+--------+
我将整个集合作为Datatable,并且正在考虑应用Linq来解决这个问题。或者,如果可以建议SQL查询也没问题。
答案 0 :(得分:0)
试试这个
SELECT rowno,mno,result from your_table
order by rowno desc
答案 1 :(得分:0)
使用LINQ to DataSet(dt
是您的DataTable
):
var sorted = dt.AsEnumerable()
.OrderByDescending(r => r.Field<int>("rowno"))
.CopyToDataTable();
没有LINQ:
var view = dt.DefaultView;
view.Sort = "rowno DESC";
var sorted = view.ToTable();