WEB开发网
开发学院数据库MSSQL Server SQL Server2005杂谈(4):在SQL Server2005中按列... 阅读

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

 2009-02-21 10:22:27 来源:WEB开发网   
核心提示:上一篇:SQL Server2005杂谈(3):四个排名函数(row_number、rank、dense_rank和ntile)的比较最近做一个项目,遇到一个在分组的情况下,SQL Server2005杂谈(4):在SQL Server2005中按列连接字符串的三种方法,将某一列的字段值(varchar类型)连接起来的

上一篇:SQL Server2005杂谈(3):四个排名函数(row_number、rank、dense_rank和ntile)的比较

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

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

图1

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

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

图2

表中的th字段值对于每一个xh值是唯一的,也是有限的,也就是说,对于一个xh值,th的值不会太多,如最多是10个(从1至10)。

以上需求最终想了三种方法来解决这个问题。

一、修改表结构

如果是新的项目,可以考虑修改一下表的结构。如果t_table的结构修改如下:

  xh   value1value2  value3  value4   .... ....         value10
  0001123456654321456789 
  000212abcd4d2r343343dfd
  0003abcde3132323

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

1 2 3 4 5 6  下一页

Tags:SQL Server 杂谈

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接