首页 > 解决方案 > 对于同一行 SQL Server 上的每个显示

问题描述

我正在尝试创建一个包含程序集编号和每个组件的单行。

我有一个名为Assembly唯一标识符的表,该表可以绑定到该inv_mast表以及该表中可以绑定到同一个inv_mast表的组件。它还包括一个序列号。

inv_mast_uid |  sequence_number |   component_inv_mast_uid

453061       | 1                | 453024
453061       | 2                | 453017
453061       | 3                | 453020
453062       | 1                | 453019
453062       | 2                | 453027

(我的一些条目只有 2 个组件)

我想要实现的是:

inv_mast_uid |  component_inv_mast_uid_1 |  component_inv_mast_uid_2    | component_inv_mast_uid_3
453061       | 453024                    | 453017                       | 453020    
453062       | 453019                    | 453027                       | Null  

我在想我会使用“For Each”循环,但我从来没有运气好过它和 SQL Server

标签: sqlsql-serverforeach

解决方案


您正在尝试做的事情称为 Pivot 所以我希望这对您有所帮助

SELECT INV_MAST_UID
     ,[1] AS COMPONENT_INV_MAST_UID_1
     ,[2] AS COMPONENT_INV_MAST_UID_2
     ,[3] AS COMPONENT_INV_MAST_UID_3
FROM Assembly
PIVOT 
(
    MAX(COMPONENT_INV_MAST_UID)
    FOR sequence_number IN([1],[2],[3]) 
) as pvt 

如果您想查看 Microsoft 文档。Sql Server 中的数据透视表

问候


推荐阅读