SQL 行到列?
SQL rows to columns?
我有一个生成的查询:
ID group data
-- ----- ----
1 A 123
1 B 456
2 A 234
2 B 567
我想将其转换为:
ID A data B data
-- ------ ------
1 123 456
2 234 567
有没有简单的方法来做到这一点?查询已经非常复杂,所以我试图避免这样的事情:
SELECT data FROM <existing query> WHERE group='A'
OUTER JOIN
SELECT data FROM <existing query> WHERE group='B'
只需使用条件聚合:
select id,
max(case when group = 'A' then data end) as group_a,
max(case when group = 'B' then data end) as group_b
from (<your query here>) q
group by id;
您可以将它构建到您现有的查询中,但如果没有看到它,就无法提出任何建议。
我有一个生成的查询:
ID group data
-- ----- ----
1 A 123
1 B 456
2 A 234
2 B 567
我想将其转换为:
ID A data B data
-- ------ ------
1 123 456
2 234 567
有没有简单的方法来做到这一点?查询已经非常复杂,所以我试图避免这样的事情:
SELECT data FROM <existing query> WHERE group='A'
OUTER JOIN
SELECT data FROM <existing query> WHERE group='B'
只需使用条件聚合:
select id,
max(case when group = 'A' then data end) as group_a,
max(case when group = 'B' then data end) as group_b
from (<your query here>) q
group by id;
您可以将它构建到您现有的查询中,但如果没有看到它,就无法提出任何建议。