sql-server-2008 - < 在 sql server 中转换为 <

标签 sql-server-2008

我的表中有一些数据

当我使用此查询选择该数据时

select TblActionHistories.Comments from TblActionHistories WHERE TblActionHistories.Entity=CAST('Task' AS VARCHAR) AND EntityId=CAST(32 AS VARCHAR)

这样就好了

Task- <b>T1</b> has been added by Swapnil Sharma
Task- <b>T1</b> status changed to <b>In Progress</b> by Swapnil Sharma<br/>

但现在我希望使用stuff将上面的结果#分开,所以我使用这个

SELECT STUFF((SELECT '#' + ISNULL(CAST(TblActionHistories.Comments AS VARCHAR(MAX)),'') FROM TblActionHistories WHERE TblActionHistories.Entity=CAST('Task' AS VARCHAR) AND EntityId=CAST(32 AS VARCHAR) for xml path ('')),1,1,'')

它给了我这个

Task- &lt;b&gt;T1&lt;/b&gt; has been added by Swapnil Sharma#Task- &lt;b&gt;T1&lt;/b&gt; status changed to &lt;b&gt;In Progress&lt;/b&gt; by Swapnil Sharma&lt;br/&gt;

你可以清楚地看到所有的特殊字符。就像 < > 转换为 < >分别

请帮我解决这个问题,我希望它们采用原始格式

最佳答案

我找到了 IvanG 建议的解决方案

SELECT STUFF((SELECT '#' + ISNULL(CAST(TblActionHistories.Comments AS VARCHAR(MAX)),'') FROM TblActionHistories WHERE TblActionHistories.Entity=CAST('Task' AS VARCHAR) AND EntityId=CAST(32 AS VARCHAR) for xml path(''), root('MyString'), type ).value('/MyString[1]','varchar(max)') ,1,1,'')

引用。到这篇文章

http://blogs.lobsterpot.com.au/2010/04/15/handling-special-characters-with-for-xml-path/

关于sql-server-2008 - < 在 sql server 中转换为 <,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12382703/

相关文章:

sql - 在 SQL 中插入空白行数

sql-server-2008 - SQL Server 2008 R2 -> Postgres 链接服务器 "cannot get the current row value of column..."

c++ - ODBC、ADO 或 OLE DB

SQL:具有不同类型参数的 ISNULL 函数

sql-server - SQL Server 2008 全文搜索 - 索引非常慢

c# - 使用 C# 以编程方式同步两个数据库

sql-server - SQL SYNONYM 和性能

sql-server-2008 - 筛选索引条件被优化器忽略

sql - 数据库模式不同步——需要在不丢失数据的情况下保持最新

c# - 从字符串转换为uniqueidentifier时转换失败