【问题标题】:Concatenating 2 values from 2 consecutive recordsets | MySQL连接 2 个连续记录集中的 2 个值 | MySQL
【发布时间】:2012-12-19 06:59:05
【问题描述】:

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

 select c from tmp;

    c 
   foo  
   bar 

2 rows in set (0.00 sec)

我需要的返回数据是

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

【问题讨论】:

  • 我假设您使用的是 TSQL。但如果您使用的是 MYSQL,最好使用Group_CONCAT(),请指定您的 DBMS。

标签: mysql sql string concat


【解决方案1】:

您可以使用GROUP_CONCAT() 函数将值放在一起。

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

【讨论】:

    【解决方案2】:

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

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

    * SQLFIDDLE demonstration

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-30
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多