我有一个查询,该查询是根据条件中的一些文本产生一些文本。但是不要担心所有条件,我只会在" 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>
作为结果。
尝试使用value()方法(XML数据类型)施放XML
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标签,并会给您纯文本。
<
和 >
是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'')