【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把逗號分隔的字符串拆成臨時表

留言
張貼留言