SQL要将这样的数据。插入到一个临时表里面。 都有什么办法。 大神来支招呀。 速速来人。小的很着急。

下面的数据已经是通过语句得出来的了。

把上面的数据查到临时表里面。 或者你通过什么语句可以 直接获得出来在图片中红色的样例数据一样的也可以。速速来人呀。

插入临时吧的话用select * into #t from tb 语句
图中事例就在from前面加into #t就可以了
但是要保证每列都有不重复的列名,如你的sum()要加 as amount这样
另外行转列的话,如果列数量不确定,需要动态拼接追问

按照你的方法。 报错了

追答

首先不需要事先创建临时表,这个语法是创建并插入数据的
然后你的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 姓名

简单的行转列的例子

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-03
oracle中:
直接create table newtablename as
select……(此处为你那段SQL语句)

sqlserver中:
select * into newtablename from
(此处为你那串SQL语句)追问

忘记说了。 我这边是SQL Sever。

追答

那就采用第二种就行格式就行了,其实这方面网上有很多资料的,你可以系统的查一下这方面的资料

追问

按照你的方法。报错了。 

追答

思路是这样的,报错应该是细节上出问题,你把你的语句和报错信息贴出来看看,最好把原始表结构也贴出来

相似回答