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 

結果如下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM