xml - Sql Server 中的东西和 'For Xml Path'

标签 xml t-sql concatenation

我使用以下代码将所有结果连接到一条记录中(用回车符分隔)

SELECT  [ConcactColumn] =  STUFF((
      SELECT CHAR(10) + t.column 
      FROM #table t
      FOR XML PATH('')), 1, 1, ''
      ) 

唯一的问题是,当我需要容纳至少 5,000,000 个字符时,我无法获得超过 43,720 个字符的结果。

我怎样才能实现这个目标?预先感谢您。

最佳答案

SSMS 中字符串的大小是有限的。但 XML 的大小不是

  • 右键单击进入查询窗口
  • 选项
  • 网格中的结果
  • 将 XML 设置为“umlimited”

然后试试这个:

SELECT STUFF(
    (
      SELECT CHAR(13) + CHAR(10) + t.name
      FROM sys.objects t
      FOR XML PATH(''),TYPE).value('text()[1]','nvarchar(max)'), 1, 2, '')
FOR XML PATH('');

由于 CHAR(13)+CHAR(10),我用 STUFF() 删除了 2 个字符。仅对于 CHAR(10),您必须将其更改为 ...),1,1,'')

如果第一行可能保持空白,您可以不使用 STUFF

SELECT
    (
      SELECT CHAR(10) + t.name
      FROM sys.objects t
      FOR XML PATH(''),TYPE
    ).value('text()[1]','nvarchar(max)')
FOR XML PATH('');

单击 XML,您会看到一个仅受您的机器容量限制的结果...

关于xml - Sql Server 中的东西和 'For Xml Path',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44555198/

相关文章:

java - TextView 没有出现在带有自定义适配器的 ListView 中

sql-server-2005 - 是否可以将表名传递到存储过程中并在没有 Exec 函数的情况下使用它?

sql-server - 将用户批量导入到 SQL Azure

Android Studio XML 使用 marginRight 和 API 17

xml - xslt 测试 bool 表达式中的 IN 函数

sql - 当月末是周中时如何提取周结束日期和月末

java - for 循环中的字符串连接。 Java 9

python-3.x - 连接多个具有相同列名的 CSV

在线性时间内用 crt 连接 C 字符串

.net - 使用 xsi :nil in XML