4

我想从具有 2 个值的表的 1 个 SQL 查询中获取数据

 select c from tmp;

    c 
   foo  
   bar 

2 rows in set (0.00 sec)

我需要的返回数据是 <foo,bar>

Concat 不这样做,我也找不到任何字符串函数。我可以对 2 行中的整数求和。为什么我不能同样检索字符串值?

4

2 回答 2

2

您可以使用GROUP_CONCAT()函数来获取值。

这将组合用逗号分隔的所有字符串值

于 2012-12-19T07:10:43.397 回答
1

也许你需要一个group_concat()在 MYSQL 中的。

注意到您在 MYSQL 中需要一个示例:

* SQLFIDDLE 演示

Select department, group_concat(name,',') as nameList
from foo
group by department
;

结果:

Department NameList
D1         John, Mary
D2         Tim, Dan, Jack
D3         Kate, Felix

以下是在 TSQL 中使用的方法:

您可以尝试以下示例代码并针对您的表格/列进行调整:

SELECT department, namelist = STUFF(
 (SELECT ','+ Name FROM foo B 
 WHERE b.department = a.department FOR XML PATH('')) , 1 , 1 , '' )
FROM foo A

否则你可以做一个CTE.

于 2012-12-19T07:13:03.743 回答