首页 > 数据库 > mysql教程 > 如何在SQL Server 2008 R2中有效拆分逗号限制的字符串?

如何在SQL Server 2008 R2中有效拆分逗号限制的字符串?

DDD
发布: 2025-01-25 06:56:08
原创
469 人浏览过

How Can I Efficiently Split Comma-Delimited Strings in SQL Server 2008 R2?

SQL Server 2008 R2 中的 T-SQL 字符串拆分

SQL Server 2008 R2 缺乏内置的字符串分割功能,使得逗号分隔的字符串处理变得困难。 本文演示了使用自定义函数的强大解决方案。

创建自定义拆分函数

以下 dbo.splitstring 函数有效地分割逗号分隔的字符串:

<code class="language-sql">CREATE FUNCTION dbo.splitstring (@stringToSplit VARCHAR(MAX))
RETURNS @returnList TABLE ([Name] [nvarchar](500))
AS
BEGIN
    DECLARE @name NVARCHAR(255), @pos INT;
    WHILE CHARINDEX(',', @stringToSplit) > 0
    BEGIN
        SELECT @pos = CHARINDEX(',', @stringToSplit);
        SELECT @name = SUBSTRING(@stringToSplit, 1, @pos - 1);
        INSERT INTO @returnList SELECT @name;
        SELECT @stringToSplit = SUBSTRING(@stringToSplit, @pos + 1, LEN(@stringToSplit) - @pos);
    END
    INSERT INTO @returnList SELECT @stringToSplit;
    RETURN;
END;</code>
登录后复制

函数使用

要使用该函数,只需将要分割的字符串作为参数传递即可:

<code class="language-sql">SELECT * FROM dbo.splitstring('91,12,65,78,56,789');</code>
登录后复制

这将生成一个表格,其中每个逗号分隔的值位于单独的行中:

|名称 | |---|---| | 91 | 91 | 12 | 12 | 65 | 65 | 78 | 78 | 56 | 56 |第789章|

此自定义函数提供了一种在 SQL Server 2008 R2 限制内处理逗号分隔字符串的可靠方法。

以上是如何在SQL Server 2008 R2中有效拆分逗号限制的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板