欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQL SERVER 不转义拼接字符

程序员文章站 2022-04-20 14:49:58
...

--例子:

left join (
	select in_a.BaseChgNo,stuff((
		select ','+in_b.EmpCode
		from tBaseChgStakeholder in_b
		where in_a.BaseChgNo=in_b.BaseChgNo
		for xml path(''), type
		).value('.', 'NVARCHAR(MAX)'),1,1,'') EmpCodes
	from tBaseChgStakeholder in_a
	group by in_a.BaseChgNo
) g on g.BaseChgNo=f.No
输出
BaseChgNo EmpCodes
JZ000001 00404,00473
JZ000002 00404,00473
JZ000003 00014,00013
JZ000004 00006,00007

--STUFF字符串函数是将字符串插入到另一个字符串中。
--它会删除开始位置第一个字符串中的指定长度的字符,然后将第二个字符串插入到开始位置的第一个字符串中。
STUFF(<character_expression>,<开始>,<长度>,<character_expression>)


--利用FOR XML PATH则返回XML格式的字符串,添加type参数不转义,例:
select    (SELECT 'ab<&c'  FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)')

参考:

SQL Server之深入理解STUFF

for XML path 转义 使用心得