我有内容具有html值并尝试将它们连接起来的表
<ul> <li>
我用过以下查询
CREATE TABLE #T(Value varchar(1000))
INSERT INTO #T
values('<p><b>AA</b> something 1</p>'),('<p><b>BB</b> something 2</p>'),('<p><b>CC</b> something 3</p>')
select *
from #T
SELECT '<ul>' +STUFF((SELECT '<li>' + Value + '</li>'
FROM #T
FOR XML PATH('')), 1, 0, '') + '</ul>' AS Notes
无论如何都要获取HTML,因此输出如下所示
<ul>
<li><p><b>AA</b> something 1</p></li>
<li><p><b>BB</b> something 2</p></li>
<li><p><b>CC</b> something 3</p></li>
</ul>
不喜欢
<ul><li><p><b>AA</b> something 1</p></li><li><p><b>BB</b> something 2</p></li><li><p><b>CC</b> something 3</p></li></ul>
你得到的结果是这样的,因为没有>和<符号(以及符号,双引号和Apostrophy)不能按原样存储在XML中,因此它将转换为某些代码,如&lt;为<。
只需使用replace函数包装Notes即可替换<和>符号
CREATE TABLE #T(Value varchar(1000))
INSERT INTO #T
values('<p><b>AA</b> something 1</p>'),('<p><b>BB</b> something 2</p>'),('<p><b>CC</b> something 3</p>')
;with html
as
(
SELECT '<ul>' +STUFF((SELECT '<li>' + Value + '</li>'
FROM #T
FOR XML PATH('')), 1, 0, '') + '</ul>' AS Notes
)
select
Notes = REPLACE(REPLACE(Notes,'<','<'),'>','>')
from html