Joh*_*mes 6 sql t-sql sql-server-2008
我正在尝试创建一个连接硬编码字符串和使用FOR XML PATH创建的字符串的值.
SUBSTRING(
(SELECT (', ' + [value])
FROM [values]
FOR XML PATH( '' )
), 3, 1000) +
' text in between my values ' +
SUBSTRING(
(SELECT (', ' + [otherValue])
FROM [otherValues]
FOR XML PATH( '' )
), 3, 1000)
Run Code Online (Sandbox Code Playgroud)
所以我希望有类似的东西:Value1, Value2, Value3 text in between my values OtherValue1, OtherValue2, OtherValue3但是我得到一个空字符串.
如果我取出子串(包括其中的查询),我得到的值介于罚款之间,如果我只自己添加一个子串块,我就会得到列表字符串.所以我无法解决为什么与子字符串和FOR XML PATH查询串联导致它返回一个空字符串....帮助!
您不需要使用 XML 功能来创建您想要的内容列表。它实际上并不是为了实现这一点而构建的:它是为了生成 XML 而构建的。:)
尝试这个。我经常使用这种技术:
DECLARE @myList nvarchar(MAX)
SELECT
@myList = COALESCE(@myList + ', ', '') + MyColumn
FROM MyTable;
Run Code Online (Sandbox Code Playgroud)
对于未来的读者,请注意,使用ORDER BY此技术并不能保证这些值最终会在输出中排序;看这里。
| 归档时间: |
|
| 查看次数: |
11818 次 |
| 最近记录: |