2016-12-26 21 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。 –

相关问题