如何在SQL Server 2016中通过直接查询实现指定ID范围内多行Random字段的字符串拼接?
解决SQL Server 2016中无存储过程的字符串拼接问题
嘿,别着急,我有个纯查询语句的解决方案刚好适合你的情况!因为SQL Server 2016还没引入STRING_AGG函数(这个是2017才新增的),咱们可以用FOR XML PATH的方式来实现字符串拼接,完全不需要存储过程,直接一条查询就能搞定。
具体查询语句
SELECT -- 通过XML路径拼接后转换为普通字符串 (SELECT Random FROM YourTableName -- 替换成你的实际表名 WHERE ConcateCode >= 1 AND ConcateCode < 5 ORDER BY ConcateCode -- 保证按ID顺序拼接,和你示例的顺序一致 FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)') AS CombinedRandom
代码说明
FOR XML PATH(''):会把查询到的每一行Random值拼接成一段无标签的XML内容.value('.', 'NVARCHAR(MAX)'):把XML内容转换成普通字符串,避免出现不必要的XML转义字符(你的Random都是字母数字,转义概率极低,但这个步骤能确保结果完全符合预期)ORDER BY ConcateCode:必须加上,这样才能保证拼接顺序和你示例里的ID顺序一致,得到A2dd42f4mRdhu9q0lpms的结果- 记得把
YourTableName替换成你实际使用的表名
测试结果
用你给出的示例数据运行这条查询,返回的CombinedRandom字段值就是你想要的:A2dd42f4mRdhu9q0lpms
内容的提问来源于stack exchange,提问作者JimKnopf
相关产品推荐
相关产品推荐

