在我的查询中传递给LEFT或SUBSTRING函数的长度参数无效

时间:2016-12-29 08:13:01

标签: sql-server

  

传递给LEFT或SUBSTRING函数的长度参数无效。

这是我的SQL查询: -

select isnull(max(CAST(substring(assetid,patindex('%-%',assetid)+1,100)+1 AS INTEGER)),1) 
from hardware_register 
where substring(assetid,1,patindex('%-%', assetid)-1) = upper('ACS')

1 个答案:

答案 0 :(得分:0)

如果" - "如果没有出现在assetid中或者没有满足您查询的记录,则会出现此错误。

检查是否" - "出现在assetid然后通过lenght。

select isnull(max(CAST(substring(assetid,CASE WHEN (patindex('%-%',assetid)>0) THEN patindex('%-%',assetid)+1 END,100)+1 AS INTEGER)),1) 
from hardware_register 

请验证SQL并更改where子句。