Sql server MSSQL是否可以在excel中连接数据透视表之类的表?
我有两个mssql表,数据如下: 餐桌水果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
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子句。网上有很多例子等等。