2011-05-24 54 views
5

我有以下一段代碼如何使用XML路徑(「」)SQL但保留回車

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

其中遞送的結果,如:

的Cwm塔夫NHS信任醫療記錄 ;博士Purby病歷 ; (不計空格,插入了問這個問題的目的需要)

然而,有沒有交付的成果,如

塔夫的Cwm NHS信託病歷

博士Purby病歷

+0

你想的carrige返回在結果網格進行渲染,或者當您複製和[此處插入文本編輯器]將文本粘貼到? – 2011-05-24 16:18:15

+1

我正在使用這個代碼插入一個單詞郵件合併(有點哈克我知道),所以沒有複製/粘貼階段。但說實話,我不太確定 – 2011-05-24 16:22:33

回答

7

的方式這是不可能的將結果用於SSMS中的網格功能。但是,如果您使用結果作爲文本選項並將CHAR(13)替換爲CHAR(10),則會得到期望的結果。

+0

乾杯@ Quickfire55 - cahing CHAR(13)與CHAR(10)合作:) – 2011-05-24 16:24:03

+0

另外,當您將其設置爲Results to text時,請不要忘記擴展'Maximum number在工具 - >選項 - >查詢結果 - > SQL Server - >結果到文本中的每個列中顯示的字符。至少在2008R2中默認設置爲256。 – 2015-11-14 16:12:36

4

我碰到同樣的問題,我不能使用Char(10),因爲接收系統期望Char(13)。所以我用下面的查詢來替換我的結果中的值,它工作。

SELECT Coloumn = REPLACE(@v_Get_UPC_List, '
', CHAR(13)) 
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