这个问题已经在这里有了答案 :
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 根据您的数据库,如果您可以同时访问和函数,则可以使用它们来获取结果。该函数将和列转换为行。完成后,您可以使用函数创建四个新列: 请参
我有两排像这样的, 我希望将它们合并为一个单独的: 不知道如何在熊猫身上做到这一点。任何提示都将受到高度赞赏!提前谢谢