首页 > 解决方案 > SQL 字符串中数字的总和

问题描述

我有一个这样的字符串:)

"<"FOSTIMON 75 M.J.>|4|4|4|3|3|3|3|3|3|3|3|3||||||||||||||||||||||||||||"

我需要数字的总和 (4+4+4+3+...+3),预期结果 = 39

感谢您的帮助!

标签: sqlsql-serverstringsplit

解决方案


这回答了编辑前的原始问题。

大多数数据库支持执行某种形式的预处理语句。在您的情况下,可能最简单的方法是构造一条 SQL 语句,然后动态执行它。

此语法因数据库而异。出于随机性,我选择了 SQL Server,但该功能(尽管不是语法)在几乎任何数据库中都可用:

declare @str nvarchar(max) = '|4|4|4|3|3|3|3|3|3|3|3|3||||||||||||||||||||||||||||';

set @str = 'select ' + replace(@str, '|', '+') + ' + 0';

exec sp_executesql @str;

是此特定版本的 reextester。

请注意,这是有效的,因为+它是一个一元(数字)运算符,类似于-但它不会更改符号。


推荐阅读