六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 54|回复: 0

SQL Server2005杂谈(2):按列连接字符串的三种方法

[复制链接]

升级  23.3%

478

主题

478

主题

478

主题

探花

Rank: 6Rank: 6

积分
1466
 楼主| 发表于 2013-2-4 23:48:40 | 显示全部楼层 |阅读模式
本文为原创,如需转载,请注明作者和出处,谢谢!



最近做一个项目,遇到一个在分组的情况下,将某一列的字段值(varchar类型)连接起来的问题,类似于sum函数对int型字段值求和。 如有一个表t_table,结构和数据如图1



图1

其中要按着xh字段分组,并且将每一组name字段值连接起来。最终结果希望如图2所示




图2

表中的th字段值对于每一个xh值是唯一的,也是有限的,也就是说,对于一个xh值,th的值不会太多,如最多是10个(从1至10)。
以上需求最终想了三种方法来解决这个问题。
一、修改表结构
如果是新的项目,可以考虑修改一下表的结构。如果t_table的结构修改如下:

xh value1value2value3 value4 .... .... value10
0001123456654321456789
000212abcd4d2r343343dfd
0003abcde3132323
这种方法将value的值纵向改为横向,也就是说,按每一个xh值,将value字段的值按逆时针旋转了90度。 但这种方法要有一个前提,就是假设xh的每一个值所对应的value值不会太多,如上面不超过10个,这样才有可能建立有限个字段。如果按着上面的字段结构,只需要将这些字段加一起就可以了,也不用分组。如下所示:

<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->selectxh,(value1+value2+value3++value10)asvaluefromt_table
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表