Sql server MSSQL是否可以在excel中连接数据透视表之类的表?

Sql server MSSQL是否可以在excel中连接数据透视表之类的表?,sql-server,Sql Server,我有两个mssql表,数据如下: 餐桌水果 id valueid valuetext 111 1 apple 111 2 pear 111 3 orange 112 1 kiwi 112 2 pear 112 3 banana 表_人 id name 111 bob 112 george 我希望使用上述两个表在这样一行上显示最终结果: name fruit1 fruit2 fru

我有两个mssql表,数据如下:

餐桌水果

id   valueid  valuetext
111  1        apple
111  2        pear
111  3        orange
112  1        kiwi
112  2        pear
112  3        banana
表_人

id  name
111 bob
112 george
我希望使用上述两个表在这样一行上显示最终结果:

name    fruit1  fruit2  fruit3
bob     apple   pear    orange
george  kiwi    pear    banana
我已尝试连接id上链接的表,但结果网格中每个id有三行

感谢您查看解决方案3:

select f0.name, 
f1.valuetext fruit1, f2.valuetext fruit2, f3.valuetext fruit3 
from table_people f0
left outer join table_fruit f1 on f0.id=f1.id and f1.valueid=1 
left outer join table_fruit f2 on f0.id=f2.id and f2.valueid=2 
left outer join table_fruit f3 on f0.id=f3.id and f3.valueid=3 
解决方案3:

select f0.name, 
f1.valuetext fruit1, f2.valuetext fruit2, f3.valuetext fruit3 
from table_people f0
left outer join table_fruit f1 on f0.id=f1.id and f1.valueid=1 
left outer join table_fruit f2 on f0.id=f2.id and f2.valueid=2 
left outer join table_fruit f3 on f0.id=f3.id and f3.valueid=3 
解决方案2:

select f0.name,
Max(case when f1.valueid=1 then f1.valuetext else cast(null as varchar(1)) end) fruit1, 
Max(case when f1.valueid=2 then f1.valuetext else cast(null as varchar(1)) end) fruit2, 
Max(case when f1.valueid=3 then f1.valuetext else cast(null as varchar(1)) end) fruit3 
from table_people f0
left outer join table_fruit f1 on f0.id=f1.id
group by f0.id, f0.name
解决方案2:

select f0.name,
Max(case when f1.valueid=1 then f1.valuetext else cast(null as varchar(1)) end) fruit1, 
Max(case when f1.valueid=2 then f1.valuetext else cast(null as varchar(1)) end) fruit2, 
Max(case when f1.valueid=3 then f1.valuetext else cast(null as varchar(1)) end) fruit3 
from table_people f0
left outer join table_fruit f1 on f0.id=f1.id
group by f0.id, f0.name

是的,MSSQL也支持PIVOT子句。您可以参考本文:

是的,MSSQL也支持PIVOT子句。您可以参考本文:

解决方案1(未测试)

解决方案1(未测试)


是的,有PIVOT子句。网上有很多例子等等。是的,有PIVOT子句。网上有很多例子等等。