我有一个查询,它会根据其中的条件生成一些文本。但是不用担心所有的条件,我只面临当'md.OtherMedication = 'OTHERMEDICATION‘和它的注释被显示时的问题。
因此,如果注释具有类似于<shubham>值,则它将返回
<shubham>这不是一个预期的结果。以下是我正在使用的查询。
Select '' + CASE WHEN md.OtherMedication = 'OTHERMEDICATION' THEN md.Comment ELSE '' END
FROM Medication md
WHERE md.HraDiagnosisId = 94121 FOR XML PATH(N'')我期待<shubham>作为结果。
发布于 2016-12-26 20:32:00
尝试使用value() Method (xml Data Type)将XML类型转换为Varchar。
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标记,并为您提供纯文本。
发布于 2016-12-26 20:28:27
<和>是xml的less than和greater than标记。您可以在查询中替换它们,以便:
Select '' + CASE WHEN md.OtherMedication = 'OTHERMEDICATION'
THEN Replace(Replace(md.Comment, '<', '<'), '>', '>') ELSE '' END
FROM Medication md
WHERE md.HraDiagnosisId = 94121 FOR XML PATH(N'')https://stackoverflow.com/questions/41331087
复制相似问题