动态行转列(爱新觉罗)
来源:互联网 发布:淘宝团队管理在哪里 编辑:程序博客网 时间:2024/06/02 11:10
源数据表:
fat1 N01 N02 TXT
---------------------------------------------------------
AAA 01 211 字符串1
AAA 01 211 字符串2
AAA 01 211 字符串3
AAA 02 212 字符串11
AAA 02 212 字符串12
AAA 02 212 字符串13
BBB 01 310 字符串21
BBB 01 310 字符串22
BBB 02 311 字符串31
BBB 02 311 字符串32
.. .. .. ...
.. .. .. ...
.. .. .. ...
当‘ fat1’‘N01’‘NO2’都具备上下行相等(或只有一条记录)条件时,得出如下结果:
fat1 N01 N02 TXT TXT1 TXT2 TXT3(不会超过10个txt字段)
--------------------------------------------------------------------------------------------------
AAA 01 211 字符串1 字符串2 字符串3
AAA 02 212 字符串11 字符串12 字符串13
BBB 01 310 字符串21 字符串22
BBB 02 311 字符串31 字符串32
.. .. .. ...
.. .. .. ...
.. .. .. ...
--------------------------------------------
create table [tb]([fat1] varchar(3),[N01] varchar(2),[N02] int,[TXT] varchar(8))
insert [tb]
select 'AAA','01',211,'字符串1' union all
select 'AAA','01',211,'字符串2' union all
select 'AAA','01',211,'字符串3' union all
select 'AAA','02',212,'字符串11' union all
select 'AAA','02',212,'字符串12' union all
select 'AAA','02',212,'字符串13' union all
select 'BBB','01',310,'字符串21' union all
select 'BBB','01',310,'字符串22' union all
select 'BBB','02',311,'字符串31' union all
select 'BBB','02',311,'字符串32'
go
--SQL SERVER 2000 动态SQL,指数量不定。
declare @sql varchar(8000)
set @sql = 'select fat1,N01,N02 '
select @sql = @sql + ' , max(case px when ''' + cast(px as varchar) + ''' then txt else '''' end) [txt' + cast(px as varchar) + ']'
from (select distinct px from (select *,px = (select count(1) from tb where fat1=t.fat1 and N01=t.N01 and N02 = t.N02 and txt < t.txt) + 1 from tb t) m) as a
set @sql = @sql + ' from (select *,px = (select count(1) from tb where fat1=t.fat1 and N01=t.N01 and N02 = t.N02 and txt < t.txt) + 1 from tb t) m group by fat1,N01,N02'
exec(@sql)
drop table tb
/*
fat1 N01 N02 txt1 txt2 txt3
---- ---- ----------- -------- -------- --------
AAA 01 211 字符串1 字符串2 字符串3
AAA 02 212 字符串11 字符串12 字符串13
BBB 01 310 字符串21 字符串22
BBB 02 311 字符串31 字符串32
*/
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2009/03/22/4015646.aspx
- 动态行转列(爱新觉罗)
- 爱新觉罗氏的清朝
- 爱新觉罗·载沣
- 转:爱新觉罗.毓华 行列转换(version 2.0)
- 爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)
- 摘自爱新觉罗.毓华SQL简单查询语句例题
- 名次算法(sql server)(转自:爱新觉罗.毓华)
- 曾鸣:清王朝垮台前,爱新觉罗利益集团已丢尽了它的脸
- 标题:普通行列转换(version 2.0) 作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)
- [sql server] 问题总结17---一个项目涉及到的50个Sql语句(爱新觉罗.毓华整理版)
- 动态行转列
- 动态行转列
- 动态行转列
- 动态行转列
- 【转】SQL Server 动态行转列(PIVOT)
- [sql server] 问题总结17---一个项目涉及到的50个Sql语句(爱新觉罗.毓华整理版)(很值得学习)
- 动态载入动态库(dll)
- 动态加载动态库(C#)反射
- 18位身份证校验位的计算方法
- IT版本控制领域的SVN
- 一条语句搞定九九乘法表
- BOM展开算法
- SQL分类汇总
- 动态行转列(爱新觉罗)
- 致橡树---------纯真的爱
- EmEditor和searchandreplace正则表达式
- 项目中遇到和需求相关的问题
- SQL制表符,换行符,回车
- java性能优化--jsp篇
- SQL语句附加数据库
- 旧文重读
- 学生管理系统(链表+数据库)学习小结