Sql server SQL Server行到列数据

Sql server SQL Server行到列数据,sql-server,Sql Server,我在SQL Server表中有以下结构的数据: Engine_No Date Process Bolt_No1 B1Value1 B1Value2 B1Value3 Bolt_No2 B2Value1 B2Value2 B2Value3 Bolt_No3 B3Value1 B3Value2 B3Value3 Bolt_No4 B4Value1 B4Value2 B4Value3 我想显示以下查询结果: Engine_No Date Process Bolt_No1 B1Value1

我在SQL Server表中有以下结构的数据:

Engine_No Date  Process Bolt_No1 B1Value1 B1Value2 B1Value3 Bolt_No2 B2Value1 B2Value2 B2Value3  Bolt_No3 B3Value1 B3Value2 B3Value3 Bolt_No4 B4Value1 B4Value2 B4Value3
我想显示以下查询结果:

Engine_No Date  Process  Bolt_No1   B1Value1  B1Value2  B1Value3  
Engine_No Date  Process  Bolt_No2   B2Value1  B2Value2  B2Value3        
Engine_No Date  Process  Bolt_No3   B3Value1  B3Value2  B3Value3  
Engine_No Date  Process  Bolt_No4   B4Value1  B4Value2  B4Value3

有人能推荐一个实现这一点的查询吗?

您可以这样选择:

SELECT
    *
FROM
(
    (
        SELECT
            Engine_No,
            Date,
            Process,
            Bolt_No1,
            B1Value1,
            B1Value2,
            B1Value3
        FROM
            Engines
    ) UNION (
        SELECT
            Engine_No,
            Date,
            Process,
            Bolt_No2,
            B2Value1,
            B2Value2,
            B2Value3
        FROM
            Engines
    ) UNION (
        SELECT
            Engine_No,
            Date,
            Process,
            Bolt_No3,
            B3Value1,
            B3Value2,
            B3Value3
        FROM
            Engines
    ) UNION (
        SELECT
            Engine_No,
            Date,
            Process,
            Bolt_No4,
            B4Value1,
            B4Value2,
            B4Value3
        FROM
            Engines
    )
) AS tmp
ORDER BY Engine_No
唯一的问题是,因为每个列只能有一个名称,所以您不知道哪些行有哪些列


在这种情况下,您通常会选择您需要的内容,然后将其格式化为您希望以何种语言显示的格式。

sql表结构一点也不清楚,请查看您的问题并在工具栏{}中格式化(我尝试过,但仍然没有意义)用于创建固定布局行。这是什么类型的表?一种方法是在几个不同的查询中使用
UNION
,但我不会尝试这样做