String 如何在postgresql中计算字符串中的数字之和

String 如何在postgresql中计算字符串中的数字之和,string,postgresql,String,Postgresql,有没有一种简单的方法可以在postgresql中添加上述所有数字。我想编写一个函数,它接受上述字符串并输出13。如果您使用的是Postgre 9.3或更高版本,这里有一个选项: 1^1^1^5^1|1^1|1^1 但更好的长期解决办法是避免这种SQL奥运会,而是规范化数据。理想情况下,您要求和的每个数字都应该在一个单独的记录中,这就是上面的查询生成总和的实际操作。如果您使用的是Postgre 9.3或更高版本,这里有一个选项: 1^1^1^5^1|1^1|1^1 但更好的长期解决办法是避

有没有一种简单的方法可以在postgresql中添加上述所有数字。我想编写一个函数,它接受上述字符串并输出13。

如果您使用的是Postgre 9.3或更高版本,这里有一个选项:

1^1^1^5^1|1^1|1^1


但更好的长期解决办法是避免这种SQL奥运会,而是规范化数据。理想情况下,您要求和的每个数字都应该在一个单独的记录中,这就是上面的查询生成总和的实际操作。

如果您使用的是Postgre 9.3或更高版本,这里有一个选项:

1^1^1^5^1|1^1|1^1


但更好的长期解决办法是避免这种SQL奥运会,而是规范化数据。理想情况下,要求和的每个数字都应该在一个单独的记录中,这就是上面的查询生成求和的实际操作。

您可以使用该函数


在这里,您可以使用正则表达式
\D
不是一个数字的所有内容进行拆分,留下数字(阅读更多信息),然后将其作为整数求和。

您可以使用该函数

在这里,您可以使用正则表达式
\D
不是一个数字的所有内容进行拆分,留下数字(阅读更多信息),然后将其作为整数求和

SELECT sum(s::int) 
  FROM regexp_split_to_table('1^1^1^5^1|1^1|1^1','\D') as s