【SQL】逗號分隔的數字相加

工作之需求,將欄位中的資料,以逗號分隔之數字作加總。

原始資料內容如下:

 
首先,建立 function:
/* @str:資料內容。 @split:以什麼符號或字元作為分割之依據。 */
create function func_splitstring (@str nvarchar(50),@split varchar(10) )
returns varchar(1000)
as
begin
   /*宣告 */
   declare @i int
   declare @s int
   declare @j int    /*小計 */
   /*設定初始值 */
   set @i=1
   set @s=1
   set @j=0    
   while(@i>0)
   begin 
      set @i=charindex(@split,@str,@s)
      if(@i>0)
           begin
               select   @j =  @j +  cast(substring(@str,@s,@i-@s) as int)
           end 
     else begin
               select   @j =  @j +  cast(substring(@str,@s,len(@str)-@s+1) as int)
           end
      set @s = @i + 1 
   end
   return @j
end

最後,套用並查詢:
Select  covertime_leveled_hours,  dbo.func_splitstring( covertime_leveled_hours, ',' ) as leveled_hours_sum 
FROM form_rbtr_covertime

執行畫面:

參考資源:
sql把逗號分隔的字符串拆成臨時表

留言

這個網誌中的熱門文章

【ASP】日期轉換(西元<-->民國)

【VB】使用NPOI元件來匯出Excel--DataTableToExcel

【SQL】符號切割字串變成多欄