首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >执行查询时,xml path返回"&lt;“for <和"&gt;”for >。如何获取原始值?

执行查询时,xml path返回"&lt;“for <和"&gt;”for >。如何获取原始值?
EN

Stack Overflow用户
提问于 2016-12-26 20:12:23
回答 2查看 5.5K关注 0票数 5

我有一个查询,它会根据其中的条件生成一些文本。但是不用担心所有的条件,我只面临当'md.OtherMedication = 'OTHERMEDICATION‘和它的注释被显示时的问题。

因此,如果注释具有类似于<shubham>值,则它将返回

代码语言:javascript
复制
 &lt;shubham&gt;

这不是一个预期的结果。以下是我正在使用的查询。

代码语言:javascript
复制
Select '' + CASE WHEN md.OtherMedication = 'OTHERMEDICATION' THEN md.Comment ELSE '' END
        FROM Medication md
        WHERE md.HraDiagnosisId = 94121 FOR XML PATH(N'')

我期待<shubham>作为结果。

EN

回答 2

Stack Overflow用户

发布于 2016-12-26 20:32:00

尝试使用value() Method (xml Data Type)将XML类型转换为Varchar。

代码语言:javascript
复制
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标记,并为您提供纯文本。

票数 10
EN

Stack Overflow用户

发布于 2016-12-26 20:28:27

&lt;&gt;是xml的less thangreater than标记。您可以在查询中替换它们,以便:

代码语言:javascript
复制
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'')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41331087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档