将行透视到 SQL 中的列而不聚合

Pivot Rows to Column in SQL without Aggregation

我希望将多行旋转成列。但是当我在 Pivot 中使用 Max 或 Min 时,它只返回一行。我想显示所有行。有人可以帮忙吗?

来自:

收件人:

您可以使用条件聚合:

select object_key,
       max(case when name = 'OBJECT_NAME' then value end) as object_name,
       max(case when name = 'Start Time' then value end) as start_time,
       max(case when name = 'End Time' then value end) as end_time,
       max(case when name = 'row_count' then value end) as row_count,
       max(case when name = 'Execution Time' then value end) as execution_time
from t
group by object_key;

我不确定你为什么在问题中指定“不聚合”。

如果你真的厌恶聚合使用可以使用joins:

select ton.object_key, ton.value as object_name,
       ts.value as start_time, te3.value as end_time,
       . . 
from t ton on
     t ts
     on ton.object_key = ts.object_key join
     t te
     on ton.object_key = t3.ojbect_key. join
     . . . ;