插入临时吧的话用select * into #t from tb 语句
图中事例就在from前面加into #t就可以了
但是要保证每列都有不重复的列名,如你的sum()要加 as amount这样
另外行转列的话,如果列数量不确定,需要动态拼接
追问按照你的方法。 报错了
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/50da81cb39dbb6fddbb080230b24ab18962b37cf?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追答首先不需要事先创建临时表,这个语法是创建并插入数据的
然后你的sum()那里没有加列别名,用这个语法还是会报错
如果你自主创建临时表的话,那么只需要用
insert (列)select 列 from 表
这样的语法就可以了,列只要对应上就行
追问您好像没有懂我的意思。 能不能加一下联系方式。443845991
追答select * into #t from (
select '张三' 姓名,'语文' 科目,20.0 成绩
union all
select '张三' 姓名,'数学' 科目,30.0 成绩
union all
select '张三' 姓名,'英语' 科目,50.0 成绩
union all
select '李四' 姓名,'语文' 科目,80.0 成绩
union all
select '李四' 姓名,'数学' 科目,10.0 成绩
union all
select '李四' 姓名,'英语' 科目,30.0 成绩
)a
select 姓名,
max(case 科目 when '语文 'then 成绩 else 0 end)语文,
max(case 科目 when '数学' then 成绩 else 0 end)数学,
max(case 科目 when '英语' then 成绩 else 0 end)英语
from #t
group by 姓名
简单的行转列的例子