【发布时间】:2021-09-09 17:00:00
【问题描述】:
我在表中有一个列 (RCV1.ECCValue),99% 的时间都有一个常量字符串格式——例如:
T0-11.86-273
两个连字符的中间部分是百分比。我正在使用下面的 sql 来获取这个工作正常的数字,并在上面的示例中返回 11.86。 当该表中的数据采用上述格式时
'Percentage' = round(SUBSTRING(RCV1.ECCValue,CHARINDEX('-',RCV1.ECCValue)+1, CHARINDEX('-',RCV1.ECCValue,CHARINDEX('-',RCV1.ECCValue)+1) -CHARINDEX('-',RCV1.ECCValue)-1),2) ,
但是...此表是从外部源更新的,并且分隔符偶尔会有所不同,例如:
T0-11.86_273
当发生这种情况时,我得到错误:
传递给 LEFT 或 SUBSTRING 函数的长度参数无效。
我对 SQL 很陌生,已经摆脱了许多挑战,但这个让我陷入了困境。任何帮助将不胜感激。有没有更好的方法来提取这个百分比值?
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
-
你知道百分比是否总是从第 4 个字符开始?它总是有 2 个小数点吗?
标签: sql sql-server