set [version] = CASE WHEN (CASE WHEN len(REPLACE(REPLACE(REPLACE(REPLACE(i.caption,CHAR(13),' '),CHAR(9),' '),CHAR(10),' '),CHAR(160),' '))<30 THEN REPLACE(REPLACE(REPLACE(REPLACE(i.caption,CHAR(13),' '),CHAR(9),' '),CHAR(10),' '),CHAR(160),' ') ELSE
SUBSTRING(REPLACE(REPLACE(REPLACE(REPLACE(i.caption,CHAR(13),' '),CHAR(9),' '),CHAR(10),' '),CHAR(160),' '),charindex('/',REPLACE(REPLACE(REPLACE(REPLACE(i.caption,CHAR(13),' '),CHAR(9),' '),CHAR(10),' '),CHAR(160),' '),0)+1,charindex(' ',REPLACE(REPLACE(REPLACE(REPLACE(i.caption,CHAR(13),' '),CHAR(9),' '),CHAR(10),' '),CHAR(160),' '))-charindex('/',REPLACE(REPLACE(REPLACE(REPLACE(i.caption,CHAR(13),' '),CHAR(9),' '),CHAR(10),' '),CHAR(160),' '),0)-1) END) like 'ksrv%' THEN '-' ELSE
CASE WHEN len(REPLACE(REPLACE(REPLACE(REPLACE(i.caption,CHAR(13),' '),CHAR(9),' '),CHAR(10),' '),CHAR(160),' '))<30 THEN REPLACE(REPLACE(REPLACE(REPLACE(i.caption,CHAR(13),' '),CHAR(9),' '),CHAR(10),' '),CHAR(160),' ') ELSE
SUBSTRING(REPLACE(REPLACE(REPLACE(REPLACE(i.caption,CHAR(13),' '),CHAR(9),' '),CHAR(10),' '),CHAR(160),' '),charindex('/',REPLACE(REPLACE(REPLACE(REPLACE(i.caption,CHAR(13),' '),CHAR(9),' '),CHAR(10),' '),CHAR(160),' '),0)+1,charindex(' ',REPLACE(REPLACE(REPLACE(REPLACE(i.caption,CHAR(13),' '),CHAR(9),' '),CHAR(10),' '),CHAR(160),' '))-charindex('/',REPLACE(REPLACE(REPLACE(REPLACE(i.caption,CHAR(13),' '),CHAR(9),' '),CHAR(10),' '),CHAR(160),' '),0)-1) END END,
давайте не путать форматирование, причем общепринятое у вас уже нарушено, и минимизацию