sql分割,剪切,连接字符串实例

declare @str varchar(8000);
set @str='[';

DECLARE @temp TABLE([id] INT IDENTITY(1, 1),[Name] VARCHAR(50)) 

insert into @temp
select distinct Substring(MobileArea,0,charindex(' ',MobileArea,0)) from Dm_Mobile

DECLARE @tempId INT ,@tempName VARCHAR(50)  
WHILE EXISTS ( SELECT   [id] FROM     @temp )
BEGIN  
  SET ROWCOUNT 1;
    SELECT  @tempId = [id],@tempName = [Name] FROM @temp order by name
  SET ROWCOUNT 0  
        
        set @str=@str+'[';
        if (select count(*) from @temp)<=1
        begin
              set @str=@str+'["'+@tempName+'"][';  
        end
        else
        begin
              set @str=@str+'["'+@tempName+'"],[';  
        end
        delete from @temp where [id] = @tempId
        
        DECLARE @temp1 TABLE([id] INT IDENTITY(1, 1),[Name] VARCHAR(50)) 
            
            insert into @temp1
            select distinct Substring(MobileArea,charindex(' ',MobileArea,0)+1,50)
                from Dm_Mobile where MobileArea like '%'+@tempName+'%'; 
                
                DECLARE @tempId1 INT ,@tempName1 VARCHAR(50);
                 WHILE EXISTS ( SELECT   [id] FROM     @temp1 )
                 begin
                      SET ROWCOUNT 1;
                        SELECT  @tempId1 = [id],@tempName1 = [Name] FROM @temp1
                      SET ROWCOUNT 0;
                      if (select count(*) from @temp1)<=1
                        begin
                            set @str=@str+'"'+@tempName1+'"';  
                        end
                        else
                        begin
                                                set @str=@str+'"'+@tempName1+'",';  
                        end
                         
                            delete from @temp1 where [id] = @tempId1  
                      
                 end
                 set @str=@str+']],'; 
        
    end
    
    set @str=@str+']';
    
    print @str

 

转载于:https://www.cnblogs.com/zhushangwei/p/3533298.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值