有表1数据如下
名称1 名称2 名称3 名称4 名称5
A B C D E
ast sch shf shlj asdf
dads adsf dsa asdfd dsf
dfdsa dfd dasf df dfsdd
想把每一个字段中第一行的内容作为该字段的类别标签插入该字段中。达到如下目的:
生成表2
名称1 类别1 名称2 类别2 名称3 类别3 名称4 类别4 名称5 类别5
ast A sch B shf C shlj D asdf E
dads A adsf B dsa C asdfd D dsf E
dfdsa A dfd B dasf C df D dfsdd E
最终得到表3
名称 类别
ast A
dads A
dfdsa A
sch B
adsf B
dfd B
shf C
dsa C
dasf C
shlj D
asdfd D
df D
asdf E
dsf E
dfsdd E
因为表1的字段太多有几千个,该如何写程序。求教高手。。
名称1 名称2 名称3 名称4 名称5
A B C D E
ast sch shf shlj asdf
dads adsf dsa asdfd dsf
dfdsa dfd dasf df dfsdd
想把每一个字段中第一行的内容作为该字段的类别标签插入该字段中。达到如下目的:
生成表2
名称1 类别1 名称2 类别2 名称3 类别3 名称4 类别4 名称5 类别5
ast A sch B shf C shlj D asdf E
dads A adsf B dsa C asdfd D dsf E
dfdsa A dfd B dasf C df D dfsdd E
最终得到表3
名称 类别
ast A
dads A
dfdsa A
sch B
adsf B
dfd B
shf C
dsa C
dasf C
shlj D
asdfd D
df D
asdf E
dsf E
dfsdd E
因为表1的字段太多有几千个,该如何写程序。求教高手。。
解决方案 »
- 求一个简单的存储过程
- SQL server 2000 简体中文版的数据库编码问题
- 取存储过程的返回值的问题,急!!!在线等!立结粉!!
- 我的WIN8系统安装SQL2012出错,这是怎么回事
- 如何在SQL SERVER 数据库的存储过程中将数据写进ORACLE数据库?
- 以下程序只能删除一个人名字中的空格,要一次处理表内所有名字,怎么办呢?
- 这个怎么查询为好
- 怎样在Win2000Professional上安装SQL SERVER服务器?
- 请问怎样插入带时间的当前系统的日期和时间?
- 请教一个问题
- 问个发布数据库的傻问题.
- 做的一个程序,对网站的数据库中一个数据量很大的表进行查询操作后,网站变的很慢,之前不慢,是什么原因?
--> (让你望见影子的墙)生成测试数据,时间:2008-12-08
if not object_id('tb') is null
drop table tb
Go
Create table tb([名称1] nvarchar(5),[名称2] nvarchar(4),[名称3] nvarchar(4),[名称4] nvarchar(5),[名称5] nvarchar(5))
Insert tb
select N'A',N'B',N'C',N'D',N'E' union all
select N'ast',N'sch',N'shf',N'shlj',N'asdf' union all
select N'dads',N'adsf',N'dsa',N'asdfd',N'dsf' union all
select N'dfdsa',N'dfd',N'dasf',N'df',N'dfsdd'
Go
Select * from tb
select 名称1,类别1='A',[名称2],类别2='B',[名称3],类别3='C',[名称4],类别4='D',[名称5],类别5='E'
into # from tb
where 名称1<>'A'select 名称1,类别1
from #
union all
select 名称2,类别2
from #
union all
select 名称3,类别3
from #
union all
select 名称4,类别4
from #
union all
select 名称5,类别5
from #ast A
dads A
dfdsa A
sch B
adsf B
dfd B
shf C
dsa C
dasf C
shlj D
asdfd D
df D
asdf E
dsf E
dfsdd E
INSERT TB
SELECT 'A', 'B', 'C', 'D', 'E' UNION ALL
SELECT 'ast', 'sch', 'shf', 'shlj', 'asdf' UNION ALL
SELECT 'dads', 'adsf', 'dsa', 'asdfd', 'dsf' UNION ALL
SELECT 'dfdsa', 'dfd', 'dasf', 'df', 'dfsdd'SELECT COL1,'A' FROM TB UNION ALL
SELECT COL2,'B' FROM TB UNION ALL
SELECT COL3,'C' FROM TB UNION ALL
SELECT COL4,'D' FROM TB UNION ALL
SELECT COL5,'E' FROM TBDROP TABLE TB
CREATE TABLE TB(COL1 VARCHAR(6),COL2 VARCHAR(6),COL3 VARCHAR(6),COL4 VARCHAR(6),COL5 VARCHAR(6))
INSERT TB
SELECT 'A', 'B', 'C', 'D', 'E' UNION ALL
SELECT 'ast', 'sch', 'shf', 'shlj', 'asdf' UNION ALL
SELECT 'dads', 'adsf', 'dsa', 'asdfd', 'dsf' UNION ALL
SELECT 'dfdsa', 'dfd', 'dasf', 'df', 'dfsdd'DECLARE @SQL VARCHAR(8000)
SET @SQL=''
SELECT @SQL=@SQL+' UNION ALL SELECT '+NAME+',(SELECT TOP 1 '+NAME+' FROM TB) FROM TB '
FROM SYSCOLUMNS
WHERE ID=OBJECT_ID('TB')SET @SQL=STUFF(@SQL,1,10,'')EXEC(@SQL)DROP TABLE TB
/*
COL1
------ ----
A A
ast A
dads A
dfdsa A
B B
sch B
adsf B
dfd B
C C
shf C
dsa C
dasf C
D D
shlj D
asdfd D
df D
E E
asdf E
dsf E
dfsdd E
*/