手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Mssql>列表

SQL Server 2005列表合计

来源:互联网 作者:west263.com 时间:2008-04-02
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  在微软的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/网站上找到。


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!