使用SQL函数,如何获取分隔字符串并将其作为HTML元素返回?
如果我有一个包含以下内容的数据字段: 红|蓝|绿|橙|黑 我想创建一个函数,将其作为单个动态变量[Colors]返回,渲染时如下所示:使用SQL函数,如何获取分隔字符串并将其作为HTML元素返回?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,如果我有一个包含以下内容的数据字段: 红|蓝|绿|橙|黑 我想创建一个函数,将其作为单个动态变量[Colors]返回,渲染时如下所示: <li>Red</li> <li>Blue</li> <li>Green</li> <li>Orange</li> <li>Black</li> 红色 蓝色的 绿色的 橙色的 黑色的 所以我需要生成li元素,就像上面一样,都在SQL中 我使
<li>Red</li>
<li>Blue</li>
<li>Green</li>
<li>Orange</li>
<li>Black</li>
红色
蓝色的
绿色的
橙色的
黑色的
所以我需要生成li元素,就像上面一样,都在SQL中
我使用STUFF以另一种方式实现了这一点,当值是表中的单个项时,我可以创建它
任何帮助都将不胜感激
谢谢大家! 这应该可以做到:
DECLARE @xml as xml
DECLARE @string as varchar(100)
SET @string ='Red|Blue|Green|Orange|Black'
SET @xml = cast( ('<li>' + replace( @string, '|' ,'</li><li>') + '</li>') as xml)
SELECT @xml
将@xml声明为xml
将@string声明为varchar(100)
设置为@string='红色|蓝色|绿色|橙色|黑色'
将@xml=cast(“”+replace(@string“|“,“ ”)+“ ”)设置为xml)
选择@xml
试一试。。。它似乎只为前三个元素生成了LI元素,其余的元素则没有。我还不知道为什么。谢谢你的快速回答。实际上我忘了把varchar(100)改成MAX。我的真实代码比我发布的示例要长一点。这很有效。非常感谢你。