我在从特定格式的表获取输出时遇到了MS-SQL的问题。
Name | StringValue | Parent_ID FieldName | TestHeader1 | 3 FieldValue | ValueForTestHeader1 | 3 FieldName | TestHeader2 | 6 FieldValue | ValueForTestHeader2 | 6
我想从此表中选择数据,如下所示:
TestHeader1 | TestHeader2 ValueForTestHeader1 | ValueForTestHeader2
任何帮助将不胜感激!
答案 0 :(得分:0)
您可以使用row_number()
和dense_rank()
进行条件聚合:
select max(case when seq1 = 1 then stringvalue end),
max(case when seq1 = 2 then stringvalue end)
from (select t.*,
dense_rank() over (order by parent_id) as seq1,
row_number() over (partition by parent_id order by stringvalue) seq2
from table t
) t
group by seq2;
答案 1 :(得分:0)
使用条件聚合
select max(case when parent_id=3 then stringvalue) as col1,
max(case when parent_id=6 then stringvalue) as col2
from tablename
group by parent_id