在SQL中进行行进-将行设置为行

时间:2018-08-27 15:40:36

标签: sql

我有一个带有以下数据集(INPUT)的表,我想要数据如所附图片中所述。我正在尝试通过完全外部联接进行所需的更改,因为我有许多酒店键,但这会使输出确实非常慢。

enter image description here

使用透视图,我无法执行相同的操作,因为它需要聚合列,而我完全不需要。

2 个答案:

答案 0 :(得分:0)

您可以使用条件聚合:

select hotel_key,
       max(case when HotelAddQuestionId = 1 then UserData end) as HAQ_ID_1,
       max(case when HotelAddQuestionId = 2 then UserData end) as HAQ_ID_2,
       max(case when HotelAddQuestionId = 3 then UserData end) as HAQ_ID_3,
       . . .
from t
group by hotel_key;

答案 1 :(得分:0)

因此,要为UserData中的每个项目创建一个新列,并按Hotelkey分组?您提供的“数据透视”链接中的列数是可变的还是恒定的。