T-SQL:来自String的分隔符之间的SUM号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了T-SQL:来自String的分隔符之间的SUM号相关的知识,希望对你有一定的参考价值。
我需要从字符串中获取具有可变长度的数字并对它们求和。
字符串具有以下格式:
EH:NUMBER=SomeOtherStuff->Code
我正在通过RIGHT()
提取代码并加入另一个表来使组正确,目前我正在使用sum来通过日期将它们组合在一起:
SUM(CASE WHEN (MONTH(data.DATE1) = 5 AND YEAR(data.DATE1) = YEAR(GETDATE())) THEN 1 ELSE 0 END) N'Mai',
然后我需要对字符串中的数字求和,而不是行数。
一些例子:
Month1 EH:1=24->ZTM
Month1 EH:4=13-21->LKm
Month2 EH:3=34,33,43->LKm
Month2 EH:7=12,92-29,29->LKm
Month2 EH:5=24-26,11,21,22->ZOL
我需要的:
Material - Month1 - Month2
ZTM - 1 - 0
LKM - 4 - 10
ZOL - 0 - 5
请问你能帮帮我吗?
问候
答案
简短版:你要找的是SUBSTRING。
更长版本:要获得NUMBER数值的总和,您需要考虑如何分解它。
我建议您按照以下步骤操作:
- 从字符串中提取NUMBER部分。这应该通过SUBSTRING完成(就像你用RIGHT提取代码一样)。为了获得开始和长度,你的子串使用charindex(如果你愿意,可以使用patindex)。
- 使用强制转换(或转换或您熟悉的)将NUMBER部分转换为数值
- 现在你可以进行聚合了。
所以SUM(CAST(SUBSTRING(*这部分你必须自己弄清楚))作为正确的数值数据类型))。我会让你弄清楚要自己插入的值,并建议首先找到分隔字符的位置,然后提取NUMBER部分,然后得到数值....你得到它。
这样可以更好地了解您实际在做什么。
干杯,祝你马丁好运
以上是关于T-SQL:来自String的分隔符之间的SUM号的主要内容,如果未能解决你的问题,请参考以下文章
T-SQL拆分使用指定分隔符的字符串(split string)
SQL Server Compact Edition 和真正的 SQL Server 之间的 T-SQL 区别?
t-sql 函数,如 sum(x) 过滤器(条件)的“过滤器”(按