基于列中的数据对数据表中的数据进行分组

时间:2011-04-06 09:15:24

标签: c#

我有一个数据表,如下所示

**Name**      **Department**
  abc             dept 1
  def             dept 2
  ghi             dept 1
  jkl             dept 1
  mno             dept 2
  pqr             dept 1

我需要对数据表中的数据进行分组,以便所有具有Department作为dept1的名称来收集,然后所有具有Department dept2的名称接下来(如下所示)并将其保存在另一个数据表中。

**Name**      **Department**
  abc             dept 1
  ghi             dept 1
  jkl             dept 1
  pqr             dept 1
  def             dept 2
  mno             dept 2

2 个答案:

答案 0 :(得分:3)

您可以使用以下语句以有序的方式获取数据:

 SELECT * FROM YourTable 
 ORDER BY Department ASC, Name ASC

这将使用 Department 作为主要排序键对结果进行排序,并将 Name 作为次要排序。两列都按ASC =升序排序(这也是默认的排序顺序)。如果已向这两列添加索引,则将按照表上的任何其他查询检索已排序的结果。我不明白为什么你想把这个排序的结果保存在另一个表中..

修改 如果您已经在DataTable中排除了未排序的数据,则仍可以使用以下代码检索已排序的版本而无需复制

 yourDataTable.DefaultView.Sort = "Department ASC, Name ASC";

答案 1 :(得分:0)

对于绑定此数据排序,您不需要新表。 只需使用数据表中的Select语句。

Datatable Select method