shu*_*una 4 sql sql-server stored-procedures qsqlquery
我有一个查询,根据条件产生一些文本.但是不要担心所有条件,我只是在'md.OtherMedication ='OTHERMEDICATION'及其评论显示时才会遇到问题.
因此,如果评论有价值,<shubham>
那么它就会返回
<shubham>
Run Code Online (Sandbox Code Playgroud)
这不是预期的结果.以下是我正在使用的查询.
Select '' + CASE WHEN md.OtherMedication = 'OTHERMEDICATION' THEN md.Comment ELSE '' END
FROM Medication md
WHERE md.HraDiagnosisId = 94121 FOR XML PATH(N'')
Run Code Online (Sandbox Code Playgroud)
我期待<shubham>结果.
尝试使用value()方法(xml数据类型)将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)')
Run Code Online (Sandbox Code Playgroud)
以上将删除所有类型的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'')
Run Code Online (Sandbox Code Playgroud)