• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

阅兵:Sql server 2005数据库列表合计_sqlserver

sqlserver 搞代码 3年前 (2018-06-17) 140次浏览 已收录 0个评论

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

CREATE TABLE Strings
(
  String VARCHAR(20)
)

INSERT Strings VALUES (‘A’)
INSERT Strings VALUES (‘B’)
INSERT Strings VALUES (‘C’)

有可能要在这个表上用到如下的集合,以便生成一个字符串的列表:

http://www.gaodaima.com/?p=36255阅兵:Sql server 2005数据库列表合计_sqlserver

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/网站上找到。

欢迎大家阅读《阅兵:Sql server 2005数据库列表合计_sqlserver,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址