sql表关于列转行的做法
2008-09-02 11:48
218 查看
create table 表a(typeid int,bianhao varchar(10),mingcheng varchar(10),pinzhong varchar(10),jiage varchar(10))
insert into 表a select 1,'编号','名称','品种','价格'
insert into 表a select 2,'标号','品名','规格','售价'
insert into 表a select 3,'true','true','true','true'
declare @s varchar(8000)
set @s = ''
select
@s=@s+' union select 原始名称 =max(case typeid when 1 then '+name+' end)'
+',自定义名称=max(case
typeid when 2 then '+name+' end)'
+',是否显示 =max(case typeid when 3
then '+name+' end)'
+' from 表a'
from syscolumns
where id=object_id('表a') and name != 'typeid' order by colid
set @s = stuff(@s,1,6,'')
exec(@s)
drop table 表a
/*
原始名称 自定义名称 是否显示
编号 标号 true
名称 品名 true
品种 规格 true
价格 售价 true
*/
说明:
/*select name(字段名) from syscolumns where id=object_id('表a') */
insert into 表a select 1,'编号','名称','品种','价格'
insert into 表a select 2,'标号','品名','规格','售价'
insert into 表a select 3,'true','true','true','true'
declare @s varchar(8000)
set @s = ''
select
@s=@s+' union select 原始名称 =max(case typeid when 1 then '+name+' end)'
+',自定义名称=max(case
typeid when 2 then '+name+' end)'
+',是否显示 =max(case typeid when 3
then '+name+' end)'
+' from 表a'
from syscolumns
where id=object_id('表a') and name != 'typeid' order by colid
set @s = stuff(@s,1,6,'')
exec(@s)
drop table 表a
/*
原始名称 自定义名称 是否显示
编号 标号 true
名称 品名 true
品种 规格 true
价格 售价 true
*/
说明:
/*select name(字段名) from syscolumns where id=object_id('表a') */
相关文章推荐
- 关于解决ListCtrl的头标题栏的鼠标状态问题的简单做法
- 关于窗体透明的做法
- 关于tableview 的cell 高度不一样的做法
- 关于一类位运算多项式相乘的做法
- 开发板与PC直连还是交叉,关于直连网线交叉网线做法
- 关于Android沉浸式状态栏的一个做法
- [收集]关于ucenter忘记创始人密码的两种做法
- 关于Viewpager中动态添加一个Fragment的做法
- 关于眼镜保护的几点做法
- 关于 行列相互转行
- C/C++拾遗录--关于宏定义汇编函数的的做法
- 关于几个基础c语言问题的初级做法
- 关于select联动的两种做法
- 关于 数据库中 读写 Blob 字段的正确做法。
- 关于iframe自适应高度的做法 在同一个域下面
- 关于“分叉/联接方案”的一般做法
- 关于git的patch做法
- 关于delphi中多线程采用定时器的做法
- 关于T-SQL中exists或者not exists子查询的“伪优化”的做法
- 关于硬盘做Raid的几种做法,以及各种做法的特点