2016-12-29 67 views
0

傳遞給LEFT或SUBSTRING函數的長度參數無效。在我的查詢中傳遞給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') 
+2

你能向我們展示樣品表數據嗎?我們不知道你在這裏做什麼。 –

+2

在'assetid'上失敗,在其中沒有「 - 」 –

+2

[無效的長度參數傳遞給LEFT或SUBSTRING函數](http://stackoverflow.com/questions/17368062/invalid-length-parameter -passed到最左或子串函數) –

回答

0

如果「 - 」不存在由assetid或沒有滿足你的查詢,你也會有這種錯誤的記錄。

檢查「 - 」是否存在於assetid中,然後傳遞長度。

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子句。

相關問題