• 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




  • 相关阅读:
    Android Broadcast
    Android 向服务器发送XML数据及调用webservice
    Android ViewPager相册横向移动
    Android 启动模式
    SQL Server忘记sa用户密码处理方案
    ArcGIS 10的色带重复问题
    隐藏TabControl中的TabPage
    ArcMap工具箱中的工具不全,工具带有“锁”图标问题
    ArcEngine开发——根据图层名称获取对应图层
    获取本地网络中可用的SQL Server实例信息
  • 原文地址:https://www.cnblogs.com/yuanxiaoping_21cn_com/p/7354954.html
Copyright © 2020-2023  润新知