模式和插入语句:
create table test1(id int,name varchar(50), number int);
insert into test1 values(1 ,'abc', 12);
insert into test1 values(2 ,'xyz', 12);
insert into test1 values(3 ,'pqr', 12);
insert into test1 values(4 ,'mno', 3);
insert into test1 values(5 ,'hij', 1);
create table test2(id int,displayorder int, date varchar(50));
insert into test2 values(1, 1, 'date example 1');
insert into test2 values(1, 2, 'date example 2');
insert into test2 values(1, 3, 'date example 3');
insert into test2 values(2, 1, 'date example 4');
insert into test2 values(2, 2, 'date example 5');
insert into test2 values(2, 4, 'date example 6');
insert into test2 values(3, 1, 'date example 7');
insert into test2 values(3, 2, 'date example 8');
insert into test2 values(4, 1, 'date example 9');
查询#1(使用分组和聚合):
select t.id,t.name,t.number, max(case when displayorder=1 then date end)date1,
max(case when displayorder=2 then date end)date2,
max(case when displayorder=3 then date end)date3,
max(case when displayorder=4 then date end)stage4
from test1 t left join test2 t2 on t.id=t2.id
group by t.id,t.name,t.number
GO
输出:
ID |
姓名 |
数字 |
日期1 |
日期2 |
日期3 |
阶段4 |
1 |
美国广播公司 |
12 |
日期示例 1 |
日期示例 2 |
日期示例 3 |
<emnull</em |
2 |
xyz |
12 |
日期示例 4 |
日期示例 5 |
<emnull</em |
日期示例 6 |
3 |
pqr |
12 |
日期示例 7 |
日期示例 8 |
<emnull</em |
<emnull</em |
4 |
mno |
3 |
日期示例 9 |
<emnull</em |
<emnull</em |
<emnull</em |
5 |
嗨 |
1 |
<emnull</em |
<emnull</em |
<emnull</em |
<emnull</em |
查询#2(使用数据透视):
select id,name,number,[1] Date1,[2] Date2,[3] Date3,[4]Stage4
from
(
select t.id,t.name,t.number, displayorder, [date]
from test1 t left join test2 t2 on t.id=t2.id
) t
pivot
(
max([date]) for displayorder in ([1],[2],[3],[4])
)piv
输出:
ID |
姓名 |
数字 |
日期2 |
日期2 |
日期3 |
第四阶段 |
1 |
美国广播公司 |
12 |
日期示例 1 |
日期示例 2 |
日期示例 3 |
<emnull</em |
2 |
xyz |
12 |
日期示例 4 |
日期示例 5 |
<emnull</em |
日期示例 6 |
3 |
pqr |
12 |
日期示例 7 |
日期示例 8 |
<emnull</em |
<emnull</em |
4 |
mno |
3 |
日期示例 9 |
<emnull</em |
<emnull</em |
<emnull</em |
5 |
嗨 |
1 |
<emnull</em |
<emnull</em |
<emnull</em |
<emnull</em |
db<小提琴在这里