Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL函数,如何获取分隔字符串并将其作为HTML元素返回?_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

使用SQL函数,如何获取分隔字符串并将其作为HTML元素返回?

使用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中 我使

如果我有一个包含以下内容的数据字段:

红|蓝|绿|橙|黑

我想创建一个函数,将其作为单个动态变量[Colors]返回,渲染时如下所示:

<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。我的真实代码比我发布的示例要长一点。这很有效。非常感谢你。