COL001
-----------
【题 名】竞争战略的环境保护评价方法
【作 者】樊松林
【题 名】现代企业在信息高速公路环境中的变革
【作 者】董慧 刘厚嘉
【题 名】关于现阶段我国信息社会学研究任务的初步探索
【作 者】谢俊贵
【题 名】期刊作者的量化研究(续)
【作 者】王崇德
【题 名】关于情报学学科的名称
【作 者】刘植惠
【题 名】当代情报学分支学科群体环境机制作用的时空格局
【作 者】陈文勇 李蕾
我想将上面的数据变成如下格式
题名 作者
------------------------------------------------------------------------
竞争战略的环境保护评价方法 樊松林
现代企业在信息高速公路环境中的变革 董慧 刘厚嘉
关于现阶段我国信息社会学研究任务的初步探索 谢俊贵
期刊作者的量化研究(续) 王崇德
关于情报学学科的名称 刘植惠
当代情报学分支学科群体环境机制作用的时空格局 陈文勇 李蕾
请问应该如何用SQL实现,数据量很大,请各位帮帮忙,小弟已经搜索过相关信息并尝试了一天,还未成功,希望各位高手赐教
8 个解决方案
#1
select * , id = identity(int,0,1) into tmp from tb
select
max(case px%2 when 0 then col001 else '' end) '题名',
max(case px%2 when 1 then col001 else '' end) '作者'
from tmp
group by px/2
#2
select * , px = identity(int,0,1) into tmp from tb
select
max(case px%2 when 0 then col001 else '' end) '题名',
max(case px%2 when 1 then col001 else '' end) '作者'
from tmp
group by px/2
#3
刚才我试了一下,返回如下错误提示:
服务器: 消息 207,级别 16,状态 3,行 16
列名 'px' 无效。
麻烦楼上解释一下
服务器: 消息 207,级别 16,状态 3,行 16
列名 'px' 无效。
麻烦楼上解释一下
#4
--> 测试数据: #T
if object_id('tempdb.dbo.#T') is not null drop table #T
create table #T (COL001 varchar(60))
insert into #T
select '【题 名】竞争战略的环境保护评价方法' union all
select '【作 者】樊松林' union all
select '【题 名】现代企业在信息高速公路环境中的变革' union all
select '【作 者】董慧 刘厚嘉' union all
select '【题 名】关于现阶段我国信息社会学研究任务的初步探索' union all
select '【作 者】谢俊贵' union all
select '【题 名】期刊作者的量化研究(续)' union all
select '【作 者】王崇德' union all
select '【题 名】关于情报学学科的名称' union all
select '【作 者】刘植惠' union all
select '【题 名】当代情报学分支学科群体环境机制作用的时空格局' union all
select '【作 者】陈文勇 李蕾'
if object_id('tempdb.dbo.#') is not null drop table #
select id=identity(int,1,1),substring(COL001,6,100) as data into # from #T
select a.data as 提名, b.data as 作者 from # a join # b on a.id=b.id-1 where b.id%2=0
/*
提名 作者
------------------------------------------------------------ ------------------------------------------------------------
竞争战略的环境保护评价方法 樊松林
现代企业在信息高速公路环境中的变革 董慧 刘厚嘉
关于现阶段我国信息社会学研究任务的初步探索 谢俊贵
期刊作者的量化研究(续) 王崇德
关于情报学学科的名称 刘植惠
当代情报学分支学科群体环境机制作用的时空格局 陈文勇 李蕾
*/
#5
你带行号导入,就什么问题都解决了
#6
谢谢楼上的帮助,可是我的数据一共有1万条,那么SQL语句该怎么写,如何带行号导入?呵呵,麻烦帮小弟解决我的困惑
#7
用2楼,一楼写成ID了.
#8
多谢楼上,问题解决了
#1
select * , id = identity(int,0,1) into tmp from tb
select
max(case px%2 when 0 then col001 else '' end) '题名',
max(case px%2 when 1 then col001 else '' end) '作者'
from tmp
group by px/2
#2
select * , px = identity(int,0,1) into tmp from tb
select
max(case px%2 when 0 then col001 else '' end) '题名',
max(case px%2 when 1 then col001 else '' end) '作者'
from tmp
group by px/2
#3
刚才我试了一下,返回如下错误提示:
服务器: 消息 207,级别 16,状态 3,行 16
列名 'px' 无效。
麻烦楼上解释一下
服务器: 消息 207,级别 16,状态 3,行 16
列名 'px' 无效。
麻烦楼上解释一下
#4
--> 测试数据: #T
if object_id('tempdb.dbo.#T') is not null drop table #T
create table #T (COL001 varchar(60))
insert into #T
select '【题 名】竞争战略的环境保护评价方法' union all
select '【作 者】樊松林' union all
select '【题 名】现代企业在信息高速公路环境中的变革' union all
select '【作 者】董慧 刘厚嘉' union all
select '【题 名】关于现阶段我国信息社会学研究任务的初步探索' union all
select '【作 者】谢俊贵' union all
select '【题 名】期刊作者的量化研究(续)' union all
select '【作 者】王崇德' union all
select '【题 名】关于情报学学科的名称' union all
select '【作 者】刘植惠' union all
select '【题 名】当代情报学分支学科群体环境机制作用的时空格局' union all
select '【作 者】陈文勇 李蕾'
if object_id('tempdb.dbo.#') is not null drop table #
select id=identity(int,1,1),substring(COL001,6,100) as data into # from #T
select a.data as 提名, b.data as 作者 from # a join # b on a.id=b.id-1 where b.id%2=0
/*
提名 作者
------------------------------------------------------------ ------------------------------------------------------------
竞争战略的环境保护评价方法 樊松林
现代企业在信息高速公路环境中的变革 董慧 刘厚嘉
关于现阶段我国信息社会学研究任务的初步探索 谢俊贵
期刊作者的量化研究(续) 王崇德
关于情报学学科的名称 刘植惠
当代情报学分支学科群体环境机制作用的时空格局 陈文勇 李蕾
*/
#5
你带行号导入,就什么问题都解决了
#6
谢谢楼上的帮助,可是我的数据一共有1万条,那么SQL语句该怎么写,如何带行号导入?呵呵,麻烦帮小弟解决我的困惑
#7
用2楼,一楼写成ID了.
#8
多谢楼上,问题解决了