如何使用sql for xml path('')但保留回车符

时间:2011-05-24 16:11:57

标签: sql xml

我有以下代码

select
    (
    select cast(Narrative as Varchar(max)) + char(13) 
    from officeclientledger 
    where ptmatter=$matter$ and ptTrans=4 
    for xml path (''), type
    )

提供如下结果:

  

Cwm Taff NHS Trust医疗记录   的  ; Purby医学博士     (不包括空格,需要插入才能提出问题)

然而,有没有办法提供结果,如

  

Cwm Taff NHS Trust医疗记录

     

Purby医学记录博士

3 个答案:

答案 0 :(得分:7)

使用SSMS中的网格功能结果无法完成此操作。但是,如果您使用结果文本选项并用CHAR(10)替换CHAR(13),您将获得所需的结果。

答案 1 :(得分:4)

我遇到了同样的问题而且我不能使用Char(10),因为接收系统期望Char(13)。所以我使用下面的查询来替换我的结果中的值,它起作用了。

SELECT Coloumn = REPLACE(@v_Get_UPC_List, '
', CHAR(13)) 

答案 2 :(得分:0)

当我必须使用SSMS并希望查看请求的值时,为了进行测试,我使用了print命令。

IF OBJECT_ID ('tempdb..#doc') IS NOT NULL DROP TABLE #doc;
declare @doc varchar(max);

create table #doc (DOC varchar(max));
    insert into #doc EXECUTE db.[spDocumentJob] 1

SELECT @doc = STUFF(
    (SELECT  ' ' +  DOC + ' ' + CHAR(13) + CHAR(10) 
        FROM #doc As T2
        ORDER BY DOC
        FOR XML PATH (''), TYPE).value('.','varchar(max)'),1,1,'')
print @doc

enter image description here