2016-12-26 24 views
3

我有一個查詢,其中的條件的基礎上產生一些文本。 但不用擔心所有條件,我只有在'md.OtherMedication ='OTHERMEDICATION'及其註釋纔會顯示時才面臨問題。xml路徑在執行查詢時爲<>和「>」返回「<」。如何獲得原始價值?

所以,如果有註釋像價值<shubham> 則返回

&lt;shubham&gt; 

這不是預期的結果。以下是我正在使用的查詢。

Select '' + CASE WHEN md.OtherMedication = 'OTHERMEDICATION' THEN md.Comment ELSE '' END 
     FROM Medication md 
     WHERE md.HraDiagnosisId = 94121 FOR XML PATH(N'') 

我期待<shubham>作爲結果。

回答

1

&lt;&gt;less thangreater than您的xml標籤。 你可以在你的查詢,以便替換它們:

Select '' + CASE WHEN md.OtherMedication = 'OTHERMEDICATION' 
THEN Replace(Replace(md.Comment, '&lt;', '<'), '&gt;', '>') ELSE '' END 
FROM Medication md 
WHERE md.HraDiagnosisId = 94121 FOR XML PATH(N'') 
5

嘗試鑄造XML爲varchar與value() Method (xml Data Type)

select (Select '' + CASE WHEN md.OtherMedication = 'OTHERMEDICATION' 
        THEN md.Comment ELSE '' END 
     FROM Medication md 
     WHERE md.HraDiagnosisId = 94121 FOR XML PATH(N''),TYPE).value('.','varchar(max)') 

以上將刪除所有類型的XML標籤,並會給你純文本。

+0

謝謝我已經更新了@TT。 –

相關問題