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

  

  

posted @ 2020-12-16 15:43  Jack He  阅读(1538)  评论(0编辑  收藏  举报