找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 数据库 查看内容

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

2009-12-14 18:53| 发布者: admin| 查看: 18| 评论: 0|原作者: 仙剑

◆在微软的SQLServer论坛里面有一个......


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

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 09:27 , Processed in 0.130642 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部