SQL SERVER- FOR XML PATH 特殊字符转义问题

declare @ls_Char nvarchar(100) = 'NO. INVOICE & NO JOB : BD112024 & BDD04739L1'
select @ls_Char for xml path('') 

Result :

NO. INVOICE & NO JOB : BD112024 & BDD04739L1 

如果直接使用 for xml path(''), 如果有特殊字符将会自动转为转义符,  <,>,&......

如果不想要被转换, 那么需要在外面再包一层 select, 并且需要用到type属性. 

select (select @ls_Char for xml path(''),type).value('.','NVARCHAR(MAX)')

最终效果如下: 

NO. INVOICE & NO JOB : BD112024 & BDD04739L1

  

  

原文地址:https://www.cnblogs.com/hesijian/p/14144260.html