赛迪网 >> 技术应用子站 >> SQL Server
[Sql server]阅兵:2005数据库列表合计
作者:unknown 来源:Blog 发布时间:2006.04.30
【Java专区】  【网络安全】  【网管专区】  【linux专区】  【进入论坛】  【IT博客】 

在微软的SQL Server 论坛里面有一个很常见的问题就是,SQL Server 2005是否有与SUM类似的集合函数,但是是用于字符串的集合的。例如,假设一个数据库有如下的表和数据::

  
CREATE TABLE Strings
(
  String VARCHAR(20)
)

INSERT Strings VALUES ('A')
INSERT Strings VALUES ('B')
INSERT Strings VALUES ('C')

有可能要在这个表上用到如下的集合,以便生成一个字符串的列表:
SELECT LISTAGG(String)
FROM Strings

      输出:

  'A, B, C'

  虽然这个合计没有构建在SQL Server 2005的内部,新的系统仍然引入了一种可以轻松达到这个功能的方式。最常见的方式就是使用新的CLR用户自定义合计(UDA)。不幸的是,用户自定义合计有8000个字节的限制,这大大限制了它们在对大集合进行合计的应用。

  另一种在SQL Server 2005中达到目标的方式就是新的FOR XML PATH函数的副产品。通过制定空的路径,就有可能产生一个类似字符串合计的函数来:

  SELECT String + ', ' AS [text()]

  FROM Strings

  ORDER BY String

  FOR XML PATH('')

  有关这个技术的更多信息,可以在Aaron Bertrand 的ASP FAQ http://www.aspfaq.com/网站上找到。
(e129)

带给你最新,最快,最权威的数据库技术
评论】 【推荐】 【 】 【打印】 【关闭】 
*姓  名: 更多资料 了解方案 认识厂商
*单位名称:
*联系电话:
*电子邮件:
    
◆ 相关文章
· [Sql server]两台Sql server数据同步 2006-04-28
· [Sql server]数据库不能启动常见故障 2006-04-27
· [Sql server]2005的XML最佳实施策略 2006-04-26
· Cisco Unified CallManager 5.0版 2006-04-25
· [Sql server]无日志恢复Sql server 2006-04-25