zoukankan      html  css  js  c++  java
  • sql server split函数

    ----------------------------------------------------------------------
    -- 版权:2011
    -- 时间:2011-06-17
    -- 用途:切分字符串,将忽略连续分隔符和分隔符之间的空字符
    -- 用法:SELECT * FROM [dbo].[WF_Split]('a,b,c,d',',');
    --    返回表结构:
    --    id    自增主键
    --    rs    分隔符切分的每个段落
    ----------------------------------------------------------------------
    USE QPTreasureDB
    GO
    IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WF_Split]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
    DROP FUNCTION dbo.[WF_Split]
    GO
    ----------------------------------------------------------------
    CREATE FUNCTION [dbo].[WF_Split]
    (
      @strSource NVARCHAR(4000),  --要操作的字符串
      @strSeparator CHAR(1)     --分隔符,单字节
    )
    RETURNS @tbResult TABLE(id INT IDENTITY(1,1),rs NVARCHAR(1000))
    WITH ENCRYPTION AS
    BEGIN
    DECLARE @dwIndex INT ,@strResult NVARCHAR(1000);
    SET @strSource = RTRIM(LTRIM(@strSource)); -- 消空格
    SET @dwIndex = CHARINDEX(@strSeparator,@strSource);  -- 取得第一个分隔符的位置

    WHILE @dwIndex>0
    BEGIN
    SET @strResult = LTRIM(RTRIM(LEFT(@strSource,@dwIndex-1)));
    IF @strResult IS NULL OR @strResult = '' OR @strResult = @strSeparator
    BEGIN
    SET @strSeparator = SUBSTRING(@strSource,@dwIndex+1,LEN(@strSource)-@dwIndex); --将要操作的字符串去除已切分部分
    SET @dwIndex = CHARINDEX(@strSeparator,@strSource); --循环量增加
        CONTINUE;
    END

    INSERT @tbResult VALUES(@strResult);
    SET @strSource = SUBSTRING(@strSource,@dwIndex+1,LEN(@strSource)-@dwIndex); --将要操作的字符串去除已切分部分
    SET @dwIndex=CHARINDEX(@strSeparator,@strSource); --循环量增加
    END
    --处理最后一节
    IF @strSource IS NOT NULL AND LTRIM(RTRIM(@strSource)) <> '' AND @strSource <> @strSeparator
    BEGIN
    INSERT @tbResult VALUES(@strSource)
    END

    RETURN;
    END




  • 相关阅读:
    length()与trim()函数用法
    软件测试面试题集锦
    数据库索引介绍
    sum 函数语法与应用
    报表测试方法与注意事项
    添加、编辑、删除功能测试点
    登陆测试思路总结
    查询功能测试点总结
    case 函数语法与使用
    js获取地址栏上的Id值
  • 原文地址:https://www.cnblogs.com/yuanxiaoping_21cn_com/p/7354954.html
Copyright © 2011-2022 走看看