我想将所有“文本”行“连接”成一行并得到一行作为结果。这可能吗?我使用 MSSQL Server 2005。
使用 FOR XML 路径:
SELECT [Text]+' ' AS 'text()' FROM _table FOR XML PATH('')
另一种选择 - 使用字符串连接:
DECLARE @s nvarchar(max)
SELECT @s = ISNULL(@s, '') + t + ' ' FROM _table OPTION (MAXDOP 1)
SELECT @s
请注意,后一个不能保证有效,据我所知,正式的多行结果集的“@s = @s + ...”的行为是未定义的。
MAXDOP 1
这里使用hint来防止优化器创建并行执行计划,因为这肯定会产生不正确的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)