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


  • 相关阅读:
    Python 分页功能
    Django 项目CRM总结
    Django 如何实现文件下载
    Python连接redis方法
    Python 微信公众号发送消息
    Python 邮件发送消息
    python 函数内置方法short_desc
    Django 定制验证码
    Django Ajax学习二之文件上传
    Django Ajax学习二之csrf跨站请求伪造
  • 原文地址:https://www.cnblogs.com/hualiuliu/p/11457325.html
Copyright © 2011-2022 走看看