zoukankan      html  css  js  c++  java
  • sql 吧一个字符串逗号分隔转换成行

    //调用fn_split1

    select Id,Title
     from ListTransField where Id in(
    select value from [fn_Split1]((select TransField_Id from ListCompany where Company='客户公司'),',')
    )


    create FUNCTION [dbo].[fn_Split1](      
     @String nvarchar (max),      
     @Delimiter nvarchar (10)      
    )      
    RETURNS @ValueTable TABLE ([Value] NVARCHAR(max),[id] int)      
    BEGIN      
     DECLARE @NextString nvarchar(max),      
      @Pos int,      
      @NextPos int,      
      @CommaCheck nvarchar(1),    
     @id int    
        
    set @id=1      
           
     SET @NextString = ''      
     SET @CommaCheck = right(@String,1)       
           
     SET  @String = @String + @Delimiter      
           
      SET @Pos = CHARINDEX(@Delimiter,@String)      
      SET @NextPos = 1      
           
     WHILE (@pos <>  0)        
     BEGIN      
      SET @NextString = SUBSTRING(@String,1,@Pos - 1)      
            
      INSERT INTO @ValueTable ( [Value],[id]) VALUES (@NextString,@id)      
            
      SET @String = SUBSTRING(@String,@pos +1,LEN(@String))      
             
      SET @NextPos = @Pos      
      SET @pos  = CHARINDEX(@Delimiter,@String)      
        
     set @id = @id +1    
     END      
           
     RETURN      
    END  
     
    GO  

  • 相关阅读:
    28完全背包+扩展欧几里得(包子凑数)
    HDU 3527 SPY
    POJ 3615 Cow Hurdles
    POJ 3620 Avoid The Lakes
    POJ 3036 Honeycomb Walk
    HDU 2352 Verdis Quo
    HDU 2368 Alfredo's Pizza Restaurant
    HDU 2700 Parity
    HDU 3763 CDs
    POJ 3279 Fliptile
  • 原文地址:https://www.cnblogs.com/xiaojian1/p/5760727.html
Copyright © 2011-2022 走看看