2017-12-05 3 views
2

次のSQLクエリは、テーブルの各行を正しく外部キーPlanIdに連結します。ただし、CHAR(10) + CHAR(13)は無視されているようです。SQLサーバーから連結された各行に新しい行を追加します。

2017年12月4日nickh::2017年11月27日BOBJ v2のニックのテスト注:オリジナルの日付は2016年6月1日だった

SELECT PlanID, 
    STUFF(
      (
       SELECT CONVERT(NVARCHAR, CONVERT(DATE, CreateTimestamp)) + ' ' + CreateUserID + ': ' + Notes 
         + CHAR(13) + CHAR(10) 
       FROM PlanNotes 
       WHERE PlanID = OuterNotes.PlanId 
       ORDER BY UpdateTimestamp DESC 
       FOR XML PATH(''), TYPE 
      ).value('.', 'nvarchar(max)'), 
      1, 
      0, 
      '' 
     ) AS Notes 
FROM PlanNotes OuterNotes; 

結果の出力は次のようになります。

私が欲しい:
2017年11月27日BOBJ v2のニックのテスト注:

2017年12月4日nickhオリジナルの日付は、私の推測では、ということです

+0

このリンクは、おそらくあなたの選択に役立つhttps://stackoverflow.com/questions/31057/how-to-insert-a-line-break-in-a-sql-server-varchar-nvarchar-string – i3lai3la

+0

あなたが結果をループし、 'print'を使うと結果が見つからない場合は、改行がすでに存在していることがわかります。例えば、結果をHTMLやテキストでレンダリングしたり、 'datagrid'のような' usercontrol'です。 – Monah

+0

https://stackoverflow.com/a/372​​84582/73226 –

答えて

1

ましたCHAR(10)CHAR(13)文字は実際にあなたの出力に表示されましたが、何らかの理由でSSMSや特定のツールが期待通りに表示されません。この問題を回避するには、クエリをテキストファイルに出力してから真正なテキストエディタ(例:Notepad ++)で開くことがあります。

+0

私は出力をテキストに落としました。予想通りに動作しているようです。 * SSMSで拳を振る*ありがとう! – NickHeidke

関連する問題