BOM数据排序及分级显示
--示例数据:
CREATETABLEt1(
Namevarchar(20),
Col1varchar(2),
Col2varchar(2),
Col3varchar(2))
INSERTt1(Name,Col1,Col2,Col3)
SELECT'A','1','',''UNIONALL
SELECT'A','2','',''UNIONALL
SELECT'A','3','',''UNIONALL
SELECT'A','','4',''UNIONALL
SELECT'A','','5',''UNIONALL
SELECT'A','','6',''UNIONALL
SELECT'A','','7',''UNIONALL
SELECT'A','','','8'UNIONALL
SELECT'A','','','9'UNIONALL
SELECT'A','','','0'UNIONALL
SELECT'B','11','',''UNIONALL
SELECT'B','12','',''UNIONALL
SELECT'B','13','',''UNIONALL
SELECT'B','14','',''UNIONALL
SELECT'B','','15',''UNIONALL
SELECT'B','','16',''UNIONALL
SELECT'B','','17',''UNIONALL
SELECT'B','','','18'UNIONALL
SELECT'B','','','19'UNIONALL
SELECT'B','','','10'
GO
问题描述:
表t1中的列数不定,固定有一个Name列,大于1个的Coln列,列名为Col1~Coln,要求根据Name分组,合并各Coln列中有值的数据。对于示例数据,要求结果如下:
NameCol1Col2Col3
---------- --------------------------
A 1 4 0
A 258
A 369
A 7
B1115 10
B 121618
B 131719
B14
(所影响的行数为8行)
--处理代码
DECLARE@svarchar(8000),@iint,@fdvarchar(8000),@Namevarchar(8000)
SELECT@s='',@i=97,@fd='',@name='a.name'
SELECT@i=@i+1,
@s=@s+'
FULLJOIN(
SELECTName,'+QUOTENAME(Name)+',
ID=(SELECTCOUNT(*)FROMt1
WHEREName=a.Name
AND'+QUOTENAME(Name)+'>''''
AND'+QUOTENAME(Name)+'<=a.'+QUOTENAME(Name)+')
FROMt1a
WHERE'+QUOTENAME(Name)+'>''''
)'+CHAR(@i)+'ONa.Name='+CHAR(@i)+'.NameANDa.ID='+CHAR(@i)+'.ID',
@fd=@fd+',
'+QUOTENAME(Name)+'=ISNULL('+CHAR(@i)+'.'+QUOTENAME(Name)+','''')',
@name='ISNULL('+CHAR(@i)+'.Name,'+@name+')'
FROMsyscolumns
WHEREID=OBJECT_ID(N't1')
ANDName<>'Col1'
ANDNameLIKE'Col%'
EXEC('
SELECTName='+@name+',
Col1=ISNULL(A.Col1,'''')'+@fd+'
FROM(
SELECTName,Col1,
ID=(SELECTCOUNT(*)FROMt1
WHEREName=a.Name
ANDCol1>''''
ANDCol1<=a.Col1)
FROMt1a
WHERECol1>''''
)a'+@s)
GO
原帖地址
分享到:
相关推荐
EasyUI指定列-合并相同数据行
本文实例为大家分享了Vue Elenent实现表格相同数据列合并的具体代码,供大家参考,具体内容如下 作者:秋名 思路:后台查询表格数据,查询出来后直接传到前端,前端通过foreach循环,然后对相同的表格进行合并。(同...
在jsp、html页面中实现table表格按列合并相同数据行单元格代码,可实现功能为:在一个table表格中,合并指定列中所有相同数据相邻行单元格内容。
el-element中el-table合并单元格 合并列。无限制列合并。通过循环数据源数据获取该列需要合并的行数。
IREPORT中多行某列数据实现合并效果,模板中相关属性的配置方法见附件。文档中展示的是PDF文件的演示效果。
EXCEL中将A列相同数据所对应的B列数据合并为一个单元格
数据库合并列数据,就是一列下面的多个单元格合并为一个单元格
jqgrid合并行、合并列 先看示例图片最终效果: jqgrid合并单元格 .jqgrid { width: 80%; margin: 0 auto; } /* 这个代码是解决表头有一点点错位的问题 */ .ui-state-default, .ui-widget-content .ui-state...
poi获取exccel有合并单元格的数据,存入List
SQL实现两张无关联表的数据列合并在一张结果集中实现思路。
Vue Elenent实现表格相同数据列合并 本文实例为大家分享了Vue Elenent实现表格相同数据列合并的具体代码,供大家参考,具体内容如下 作者:秋名 思路:后台查询表格数据,查询出来后直接传到前端,前端通过...
将excel的多列数据合并到一列,非常方便。
测试用例和代码文件 博文链接:https://vectorwind.iteye.com/blog/1894606
实现同列相同单元格值的合并与统一列头的归类
根据获取的数据(dataTable),来自动合并行、列;
SQL语句用with将列分割成多列存为临时表,再将多行某个字段拼接合并为一行
asp.net C#得到Excel合并单元格行和列及其内容,得到合并单元格的开始行列和结束的行和列。关闭Excel 进程。
table数据相同时合并单元格,原理:逐行进行比较,相同时隐藏第二行,对第一行添加rowspan 【table数据相同时合并单元格,原理:逐行进行比较,相同时隐藏第二行,对第一行添加rowspan】
妙用Excel合并列数据 快速完成报表 妙用Excel合并列数据 快速完成报表
对于合并列单元格的excel,分页打印时,列单元格的内容可能只显示在第二页,显示格式不友好。针对这一问题,对每一页的列单元格需要分别进行合并操作。附件中的vba代码就解决了这个问题。把代码复制到宏,运行即可。