根据另一列的不同值连接一列的结果

时间:2011-03-30 15:42:57

标签: asp.net

I am trying to do this


col1  col2  col3

a       1     b

a       2     c

a       3     d

更改为

col1 col2 col3

a    1   b, c, d

     2    

     3    

col1和col3都有文本值

我写了这段代码,这段代码出了什么问题?任何人吗?

DataSet ds = new DataSet();

using (var mm = new OracleDataAdapter(objCmd))
            mm.Fill(ds, "TableName");
            objCmd.Dispose();

DataView dv = ds.Tables["TableName"].DefaultView;

DataTable dt = ds.Tables["SURVEY_MASTER"];

 IEnumerable<string> query = (from row in dt.AsEnumerable()
                              select row.Field<string>("Col1")).Distinct();

 this.GridView1.DataSource = query;

上面的代码无效.......我正在尝试更改

ds或datatable值然后显示它

在gridview中

代码有什么问题?

任何人都能解决我想要实现的目标吗?

请尽可能编写完整的代码

2 个答案:

答案 0 :(得分:0)

可以在SQL级别更好地处理任务。请参阅此repost-of-a-repost,它建议使用COLLECT函数并将行值连接成一个字符串:How can I combine multiple rows into a comma-delimited list in Oracle?

答案 1 :(得分:0)

通过聚合它来违反第2列,因为“c”,“d”不是“1”。

你应该重新思考你的聚合,或从等式中取出col2。

这可以通过

小组来实现
var groups = from v in values group v by col1 into gv select v

那样B,C,D将在单一组中。