zoukankan      html  css  js  c++  java
  • SQL 循环表的数据,拆分函数

          

            遇到两个小知识点。自己总结一下,方便自己查阅,也是为了让自己养成一个习惯。一个写博客的习惯。上次看了一遍文章。讲的是写博客的好处。

    自己看了,也有所感触。我也知道,不一定能坚持下来。但我想尝试一下。尝试养成这样一个习惯。

      

         1 SQL循环表里的数据

         

    select * into #t1 from Userinfo
    declare @id varchar(2000);
    while (exists(select ProjectID from #t1))
    begin
         select @id=userid from #t1
         delete #t1 where ProjectID=@id
    end
    drop table #t1

         2  SQL拆分函数

    USE [XSMAN_DB]
    GO
    /****** Object:  UserDefinedFunction [dbo].[func_SplitToTable]    Script Date: 12/03/2012 23:25:37 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================  
    -- Author:  cxy  
    -- Create date: 2010-10-28  
    -- Description: 根据分隔符分割字符串,返回表  
    -- =============================================  
    Create FUNCTION [dbo].[func_SplitToTable]  
    (  
     @SplitString nvarchar(max),  
     @Separator nvarchar(10)=' '  
    )  
    RETURNS @SplitStringsTable TABLE  
    (  
     [id] int identity(1,1),  
     [value] nvarchar(max)  
    )  
    AS  
    BEGIN  
     DECLARE @CurrentIndex int;  
     DECLARE @NextIndex int;  
     DECLARE @ReturnText nvarchar(max);  
     SELECT @CurrentIndex=1;  
     WHILE(@CurrentIndex<=len(@SplitString))  
     BEGIN  
      SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex);  
      IF(@NextIndex=0 OR @NextIndex IS NULL)  
       SELECT @NextIndex=len(@SplitString)+1;  
      SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex);  
      INSERT INTO @SplitStringsTable([value]) VALUES(@ReturnText);  
      SELECT @CurrentIndex=@NextIndex+1;  
     END  
     RETURN  
    END
    
    --执行函数 1
    select * from dbo.func_SplitToTable('1,2',',')
    
    --执行函数 2
    select * from dbo.func_SplitToTable('1-2-3','-')
    
    --执行函数 3
    select * from dbo.func_SplitToTable('1 2 3',' ')

      执行结果:

             不积跬步,无以至千里;不积小流,无以成江海.希望我能坚持下去。努力!

         

  • 相关阅读:
    给文章生成二维码
    用HTML5 Canvas做一个画图板
    失败多少次不要紧,人们只会记住你成功的那一次
    关于读大学的意义
    卸载Anaconda
    Anaconda基本命令
    plt.imshow()
    matplotlib不显示图片
    在Anaconda环境下使用Jupyter Notebook
    join()
  • 原文地址:https://www.cnblogs.com/for917157ever/p/2800591.html
Copyright © 2011-2022 走看看