当前位置: 首页 > 面试题库 >

将两行数据合并为一[重复]

韩高峯
2023-03-14
问题内容

这个问题已经在这里有了答案

8年前关闭。

可能重复:
连接行值T-SQL

我是SQL Server的新手,曾经尝试过一些互联网上建议的技术,例如使用临时变量,XML路径COALESCE等,但是所有这些都不满足我的要求。

我正在使用Toad for SQL Server 5.5版创建SQL脚本,而我用来查询数据库服务器的帐户仅具有READ访问权限。因此不能使用CREATE VIEW我相信的声明。

表名: Customer

ServerName  Country  contact
----------  -------  -------------
srv1        SG       srv1_contact1
srv1        SG       srv1_contact2
srv1        SG       srv1_contact3
srv2        HK       srv2_contact1
srv2        HK       srv2_contact2
srv3        JP       srv3_contact1
srv3        JP       srv3_contact2
srv3        JP       srv3_contact3
srv4        KR       srv4_contact1

预期产量:

ServerName  Country  contact
----------  -------  -------------------------------------------
srv1        SG       srv1_contact1; srv1_contact2; srv1_contact3
srv2        HK       srv2_contact1; srv2_contact2
srv3        JP       srv3_contact1; srv3_contact2; srv3_contact3
srv4        KR       srv4_contact1

问题答案:
SELECT ServerName, Country, contact = STUFF((SELECT '; ' 
    + ic.contact FROM dbo.Customer AS ic
  WHERE ic.ServerName = c.ServerName AND ic.Country = c.Country
  FOR XML PATH(''), TYPE).value('.','nvarchar(max)'), 1, 2, '')
FROM dbo.Customer AS c
GROUP BY ServerName, Country
ORDER BY ServerName;


 类似资料:
  • 问题内容: 我想要做的是合并几行数据,以便在Transact-SQL或SSIS中将其显示为单行。因此,例如: 制作: 到这个: 因此,我所做的就是将值合并在一起,而忽略了null值。(D =数据; T =更新) 任何建议将是最欢迎的。 谢谢。 问题答案: 这将起作用,但是由于没有标识或日期时间列-无法找到哪个更新行是较新的。因此,如果同一列上有更多更新,那么我只需按字母/数字(MIN)来选择第一个

  • 问题内容: 我正在使用SQL Server2008。我具有下表中的数据: 我想以这种格式获取数据: 我怎样才能做到这一点? 问题答案: 使用PIVOT您可以执行以下操作 产生 查看有效的Data.SE示例 在不支持PIVOT的数据库中,您可以改为对表进行多次联接。尽管您可能还是想这样做,但是正如GBN所指出的那样,因为我们没有使用聚合。 查看有效的Data.SE示例

  • 问题内容: 我有第1列和第2列,并希望将它们合并到同一表的第3列中。如果第2列为空,则显示第1列的值;如果第1列为空,则它们显示第2列的数据。如果它们都为空,则显示为空。我尝试了两件事: 1)使用CONCAT 。 仅当两个列都不为null时,它才合并列。否则,它只是将null声明为null。 2)使用(第1栏+第2栏)。 。 没有显示所需的输出。 我正在用Java编写此代码。谢谢 问题答案: us

  • 我有两个数据帧,我需要连接一列,如果id包含在第二个数据帧的同一列中,则只从第一个数据帧中获取行: df1: 断续器: 期望输出: 我已经用df1.join(df2("id ")," left ")试过了,但是给我错误:“Dataframe”对象是不可调用的。

  • 问题内容: 我有一张桌子 但是我希望输出如下(我想使用此输出与其他一些表进行内部联接) 我已经调查过,但不确定如何使用它。 问题答案: 这种转换称为 枢轴 。您没有指定要使用的数据库,但是可以在任何系统中使用带有表达式的聚合函数: 参见带有演示的SQL Fiddle 根据您的数据库,如果您可以同时访问和函数,则可以使用它们来获取结果。该函数将和列转换为行。完成后,您可以使用函数创建四个新列: 请参

  • 我有两排像这样的, 我希望将它们合并为一个单独的: 不知道如何在熊猫身上做到这一点。任何提示都将受到高度赞赏!提前谢谢