为什么char(13)+ char(10)for xml path('')不起作用?

时间:2017-07-10 12:27:56

标签: sql sql-server

当我在我的查询中使用char(13)+char(10)时,它可以正常工作,但是当我在char(13)+char(10)的查询中使用for xml path('')时它不起作用而不是我得到此字符{{ 1}} 我认为这是因为两个
虽然可能没有。 我该怎么办?

我的代码有一个示例:

for xml path('')

1 个答案:

答案 0 :(得分:2)

为xml输出指定类型指令,如下所示:

select d.title+char(13)+char(10)+
(
   select c.title+char(13)+char(10)+
   ((
      select a.title+b.title+char(13)+char(10)
      from tbl_one a
      inner join tbl_two b on a.id=b.one
      where a.id=aa.id
      for xml path (''), type).value('(./text())[1]','nvarchar(max)')
   )
   from tbl_one aa on 
   inner join tbl_three c on aa.id=c.one
   where aa.id=aaa.id
   for xml path (''), type).value('(./text())[1]','nvarchar(max)')
from tbl_four d
inner join tbl_one aaa on d.one=aaa.id

参考:

rextester演示:http://rextester.com/ETCRIW69262

select 'd'+char(13)+char(10)+
(
   select c+char(13)+char(10)+
   (
      select a+b+char(13)+char(10)
      from (values ('a','b')) x (a,b)
      for xml path ('')
   )
   from (values ('c'))x(c)
   for xml path (''))

返回:

d
c
ab

和这个版本:

select 'd'+char(13)+char(10)+
(
   select c+char(13)+char(10)+
   ((
      select a+b+char(13)+char(10)
      from (values ('a','b')) x (a,b)
      for xml path (''), type).value('(./text())[1]','nvarchar(max)')
   )
   from (values ('c')) x (c)
   for xml path (''), type).value('(./text())[1]','nvarchar(max)')

返回:

d
c
ab