datatable 结构 如下
 姓名       语文   数学   总分
 张三        60     70     130
 李四        70     60     130
 王五        90     90     180
 赵六        99     90     189想要的datatable结果为:
 姓名       语文   数学   总分    名次
 张三        60     70     130     3
 李四        70     60     130     3
 王五        90     90     180     2
 赵六        99     90     189     1
请高手给指点一下 在下不胜感激

解决方案 »

  1.   

    select * from (select 语文+数学 as 总分 from datatable) order by 总分
      

  2.   

    回复1楼 我的意思是datatable再加一列 “名次”然后根据每条数据的总分 排名
      

  3.   

       DataTable _Table = new DataTable();
                _Table.Columns.Add("姓名");
                _Table.Columns.Add("语文");
                _Table.Columns.Add("数学");
                _Table.Columns.Add("总分");
                            _Table.Rows.Add(new object[] { "张三", 60, 70, 130 });
                _Table.Rows.Add(new object[] { "李四", 70, 60, 130 });
                _Table.Rows.Add(new object[] { "王五", 90, 90, 180 });
                _Table.Rows.Add(new object[] { "赵六", 99, 90, 189 });
                _Table.Columns.Add("名次");            int _Count=1;
                string _Filter="1=1";
                string _Max="";
                while (true)
                {
                    _Max = _Table.Compute("Max(总分)", _Filter).ToString();
                    if (_Max.Length == 0) break;
                    _Filter += " AND 总分 <>" + _Max;
                    DataRow[] _Row = _Table.Select("总分=" + _Max);
                    for (int i = 0; i != _Row.Length; i++)
                    {
                        _Row[i]["名次"] = _Count;
                    }
                    _Count++;
                    if (_Row.Length == 0) break;
                }
      

  4.   

    使用LINQ TO DATASET查询值并比较实现排序更简单