数据表'分组

本文关键字:分组 数据表 | 更新日期: 2023-09-27 17:50:47

我试图在选择组语句中进行选择以分组数据,但我不确定如何在DataTable中做到这一点。

我的数据库看起来像:

Breed, Name, DOB
Dog, Bob, 1/1/2012
Cat, Ben, 4/7/2012
Cat, Max, 24,1,1978
Dog, Rex, 15,9, 2000
Horse, Sue, 13/3/1999
Horse, Robby, 24,1,1990
Dog, Brodie, 24,1,1988

我在ASPX母版页上的输出是:

Dog
Bob, 1/1/2012
Rex, 15,9, 2000
Brodie, 24,1,1988
Cat
Cat, Ben, 4/7/2012
Cat, Max, 24,1,1978
Horse
Sue, 13/3/1999
Robby, 24,1,1990

目前我没有分组的是:

<asp:Repeater ID="Pets" runat="server" OnItemDataBound="PetsData">
  <ItemTemplate>
    <h3><%# Eval("Breed") %></h3>
    <p><%# Eval("Name") %> (<%# Eval("DOB") %>)</p>
  </ItemTemplate>
</asp:Repeater>

private DataTable bindData3()
{
    string sql = @"SELECT * FROM Pets";
    DataTable dr = SqlHelper.ExecuteQuery(sql);
    Pets.DataSource = dr;
    Pets.DataBind();
    return dr;
}
protected void PetsData(object sender, RepeaterItemEventArgs e)
{
}

谁能帮我把上面的数据分组?


编辑:我想我是在一个嵌套的重复器之后,所以标题/品种显示一次,之后列出了所有的子项。有人能帮忙吗?

数据表'分组

您应该能够使用DataTable实现这一点。选择

类似于SQL中的ORDER BY子句。您可以按品种对数据进行排序,以便将相同的品种放在一起。

然后,当您逐行遍历整个表时,您可以检查您正在读取的品种是否与前一个不同。如果不一样,先打印出品种,然后再打印你的数据。

try this

select p.Breed, c.Name, c.DOB
from
(
    select distinct Breed
    from Pets
) p inner join Pets c on (c.Breed = p.Breed)

试试这个。

SELECT * FROM [dbo]。[宠物]按品种、姓名、出生日期分组