在另一个表中以多行作为逗号分隔字段的SQL表?

时间:2013-01-04 07:40:53

标签: c# asp.net-mvc-2 sql-server-2008-r2

  

可能重复:
  SQL Server: Can I Comma Delimit Multiple Rows Into One Column?

这可能吗?我有一个临时表,可以有很多行ex:

  interaction type     name   points
        6             India     50
        8             India     100

在我的主表CategoriesTable中我有一个名为HintText的字段

如何将这些行转换为HintText = 6,印度,50 | 6,印度,100?

到目前为止我的代码:

 UPDATE #CategoriesTable
  SET HintText =  t.Name + ',' + t.Points + ',' + t.interactiontype
 FROM #CategoriesTable
 INNER JOIN #temp1 t ON t.userId = #CategoriesTable.UserId
 WHERE t.userId = #CategoriesTable.UserId

在我的杂项中:

 HintText nvarchar(256),

并在我的存储库中:

 trainingModuleProgressState.HintText = row["HintText"].ToString();

在我的数据模型中:

 public string HintText { get; set; }  

这会给我一行,我如何获得第二行?

1 个答案:

答案 0 :(得分:0)

我认为你想在MySQL中使用与GROUP_CONCAT类似的东西。不幸的是,似乎没有简单的方法在SQL Server中执行此操作。 Here是关于它的许多讨论之一。

MySQL GROUP_CONCAT看起来像:(我知道语法是100%)

UPDATE #CategoriesTable
SET HintText = (SELECT GROUP_CONCAT(t.Name + ',' + t.Points + ',' + t.interactiontype)
                FROM #temp1 t
                WHERE t.userId = #CategoriesTable.UserId)