• sqlserver 字段 逗号分隔分组 多行数据


    现在sqlserver想实现一个功能:有个apply_industry字段想根据逗号分割成多行便于后面的统计

     具体实现方式如下:

    1、增加Split函数

     1 -- 字符串按字符分成多条数据(@String:待分隔字符串, @Delimiter:分隔符)
     2 -- demo: select top 10 * from dbo.split('Chennai,Bangalore,Mumbai',',')
     3 -- 结果如下:
     4 -- items(列名)
     5 -- Chennai
     6 -- Bangalore
     7 -- Mumbai
     8 
     9 CREATE FUNCTION [dbo].[Split](@String varchar(8000), @Delimiter char(1))
    10 returns @temptable TABLE (items varchar(8000))
    11 as
    12 begin
    13     declare @idx int
    14     declare @slice varchar(8000)
    15     select @idx = 1
    16           if len(@String)<1 or @String is null return
    17     while @idx!= 0
    18     begin
    19         set @idx =charindex(@Delimiter,@String)
    20         if @idx!=0
    21             set @slice =left(@String,@idx - 1)
    22         else
    23             set @slice = @String
    24         if(len(@slice)>0)
    25             insert into @temptable(items)values(@slice)
    26         set @String =right(@String,len(@String)- @idx)
    27         if len(@String)= 0 break
    28     end
    29 return
    30 end

    2、执行语句
     SELECT id, b.apply_industry FROM db_basic b CROSS APPLY dbo.Split(b.apply_industry,',') AS a 

    结果如下

  • 相关阅读:
    [考试]20150811
    [考试]20150810
    [随笔]暑假过了,暑假来了
    [考试]20150808
    动态规划大合集II
    [知识点][旧版]C++中的运算符
    NOIP动态规划大合集
    [考试]20150729
    [考试]20150728
    /=============分隔线=============/
  • 原文地址:https://www.cnblogs.com/linvan/p/14918731.html
Copyright © 2020-2023  润新知