【问题标题】:Select multiple data from one column and update the combine result to another table从一列中选择多个数据并将合并结果更新到另一个表
【发布时间】:2019-12-11 06:35:43
【问题描述】:

我有一个如下表“表 A”,我想将这些数据选择到一列中,结果将更新表 B

+-----------+
| ID | Name |
+-----------+
| 1  |a     |
+-----------+
| 2  |b     |
+-----------+
| 3  |c     |
+-----------+

结果:

Name
-----
a b c

【问题讨论】:

  • 请提及您使用的 DBMS。甲骨文? MySQL 等,?
  • 我使用的是sql server
  • 这个话题在这里被讨论了数百次。如何在mysqlOracleSQL Server中做到这一点
  • SQL 服务器 2017

标签: sql sql-server tsql string-aggregation


【解决方案1】:

使用STRING_AGG()

SELECT
    STRING_AGG(name,' ') Name
FROM
    yourtable

【讨论】:

    【解决方案2】:

    你也可以使用stuff()函数。

    select
       stuff((select (' ' + cast([name] as varchar(30)) )
                          from test2 t2
                            for xml path('')
                        ), 1, 1, '' )
    

    【讨论】:

      【解决方案3】:

      试试下面的查询:

      Declare @Names varchar(max)
      SELECT @Names = COALESCE(@Names + ', ', '') + Name 
      FROM TableA
      
      INSERT INTO TableB(Name)
      SELECT REPLACE(@Names,',',' ')
      

      【讨论】:

        猜你喜欢
        • 2018-08-09
        • 2019-07-01
        • 2021-12-30
        • 1970-01-01
        • 2022-01-14
        • 2021-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多