当我在我的查询中使用char(13)+char(10)
时,它可以正常工作,但是当我在char(13)+char(10)
的查询中使用for xml path('')
时它不起作用而不是我得到此字符{{ 1}}
我认为这是因为两个
虽然可能没有。
我该怎么办?
我的代码有一个示例:
for xml path('')
答案 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