Sql server 如何通过informatica/SQL Server将数据行转换为单行
如何在SQL Server 2014中将特定ID字段的对角线行转换为单行。任何帮助都将不胜感激 请复习 我的来源是SQL Server 2014 注:Sql server 如何通过informatica/SQL Server将数据行转换为单行,sql-server,sql-server-2014,informatica,Sql Server,Sql Server 2014,Informatica,如何在SQL Server 2014中将特定ID字段的对角线行转换为单行。任何帮助都将不胜感激 请复习 我的来源是SQL Server 2014 注: 我没有DB的写权限,因此无法创建函数等 我可以选择通过从SQL Server获取Informatica中的源[如下所示]来获得所需的o/p,这是查询的结果,并通过在SQL Server-2014中应用一些转换或写入逻辑来实现所需的o/p。因此,简而言之,我可以使用Informatica执行逻辑,也可以在初始级别通过SQL Server本身来获得所
ID|POS|DESC1|desc2|desc3|desc4|desc5|desc6|desc7|desc8|
1|1|ItemA|null|null|null|null|null|null|null
1|2|null|ItemB|null|null|null|null|null|null
1|3|null|null|Item C|null|null|null|null|null
1|4|null|null|null|ItemD|null|null|null|null
1|5|null|null|null|null|ItemE|null|null|null
1|6|null|null|null|null|null|value-random|null|null
1|7|null|null|null|null|null|null|Check!A|null
1|8|null|null|null|null|null|null|null|123456
输出:
ID|DESC1|desc2|desc3|desc4|desc5|Desc6|desc7|Desc8
1|ItemA|ItemB|Item C|ItemD|ItemE|value-random|Check!A|123456
这被简化了,因为我不知道您当前的查询是什么样子的,但是您可以使用
MAX()
和groupby
id
SELECT
ID,
MAX(desc1) AS [desc1],
MAX(desc2) AS [desc2],
MAX(desc3) AS [desc3],
MAX(desc4) AS [desc4],
MAX(desc5) AS [desc5],
MAX(desc6) AS [desc6],
MAX(desc7) AS [desc7],
MAX(desc8) AS [desc8]
FROM dbo.YourTable
GROUP BY ID
这被简化了,因为我不知道您当前的查询是什么样子的,但是您可以使用
MAX()
和groupby
id
SELECT
ID,
MAX(desc1) AS [desc1],
MAX(desc2) AS [desc2],
MAX(desc3) AS [desc3],
MAX(desc4) AS [desc4],
MAX(desc5) AS [desc5],
MAX(desc6) AS [desc6],
MAX(desc7) AS [desc7],
MAX(desc8) AS [desc8]
FROM dbo.YourTable
GROUP BY ID
某些行是否可能不止一个非空的列?嗨,不是。每行中只出现一次。rest all将为空。是否有可能某些行将有不止一个不为空的列?嗨,不是。每行中只出现一次。其余的都将为空