Haz funciones de cadena en tu ORDER BY
para eliminar sólo el número. Algo como esto debería funcionar:
SELECT col
FROM table
ORDER BY CAST(CASE WHEN ISNUMERIC(SUBSTRING(col,4,20)) = 1
THEN SUBSTRING(col,4,20)
ELSE LEFT(SUBSTRING(col,4,20),CHARINDEX('.',SUBSTRING(col,4,20),0)-1)
END AS NUMERIC)
Esto primero eliminará el IS-
y verifique si el resto de la cadena es un número. Si es así, dejará los dígitos decimales, de lo contrario eliminará el .
y los siguientes caracteres alfabéticos.
Esto supone que su pedido previsto en el caso de decimales numéricos sería:
IS-123.A
IS-123.1
IS-123.2
Si no te importa lo que hay después del punto/decimal, entonces simplemente:
ORDER BY CAST(LEFT(SUBSTRING(col,4,20),CHARINDEX('.',SUBSTRING(col,4,20),0)-1) AS NUMERIC)