zoukankan      html  css  js  c++  java
  • SQL Server通过函数把逗号分隔的字符串拆分成数据列表的脚本-干货


    CREATE FUNCTION [dbo].[Split](@separator VARCHAR(64)=',',@string NVARCHAR(MAX))
      RETURNS @ResultTab TABLE (
         Id    INT ,
         Res     NVARCHAR(500)
     )
     AS
     BEGIN
         DECLARE @Num INT
         IF(@string IS NOT NULL AND @string <> '' AND LEN(@string)>0)
         BEGIN
             IF(CHARINDEX(@separator,@string)>0)        --判断要截取的字符是否存在
             BEGIN
                 SET @Num=0
                 WHILE (CHARINDEX(@separator,@string)>0)        --如果要截取的字符存在,就继续循环
                 BEGIN
                     SET @Num=@Num+1
                     
                     INSERT INTO @ResultTab(Id,Res)        --截取字符串,插入表变量
                     SELECT @Num,LEFT(@string,CHARINDEX(@separator,@string)-1)
                     
                     --把已经截取并插入的字符串删除
                     SET @string=STUFF(@string,1,CHARINDEX(@separator,@string)-1+LEN(@separator),'')    
                 END
                 
                 --如果最后一个截取的字符串为空,那就不插入了
                 --例如:'123,456,789,' 这样的字符串最后剩下的就是空字符串了
                 IF(@string IS NOT NULL AND @string <> '')
                 BEGIN
                     INSERT INTO @ResultTab(Id,Res)
                     SELECT @Num+1,@string
                 END            
             END
             ELSE
             BEGIN
                     INSERT INTO @ResultTab(Id,Res)        --截取字符串,插入表变量
                     SELECT 1,@string
             END
          END
          ELSE
              BEGIN
                 DELETE FROM @ResultTab
              END
         RETURN
     END


  • 相关阅读:
    Jenkins安装和初始化配置
    KVM环境下vCPU绑定到物理CPU
    关于自动化测试环境的集成(Jenkins+RobotFramework+TestLink+SVN)
    Linux下PPPoE Server测试环境搭建
    CentOS安装使用vnc进行远程桌面登录
    linux下PPTP Server测试环境搭建
    202020211 20209301《Linux内核原理与分析》第一周作业
    博弈论学习笔记(一)四个入门结论
    官宣!Amazon EMR正式支持Apache Hudi
    LessCss学习笔记 CCH
  • 原文地址:https://www.cnblogs.com/hualiuliu/p/11457325.html
Copyright © 2011-2022 走看看