Изпълнявайте низови функции във вашия ORDER BY
за премахване само на номера. Нещо подобно трябва да работи:
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)
Това първо ще премахне IS-
и проверете дали останалата част от низа е число. Ако е така, ще остави десетичните цифри, в противен случай ще премахне .
и следните буквени знаци.
Това предполага, че планираното ви подреждане в случай на числови десетични знаци ще бъде:
IS-123.A
IS-123.1
IS-123.2
Ако не ви интересува какво има след десетичната запетая/точка, тогава просто:
ORDER BY CAST(LEFT(SUBSTRING(col,4,20),CHARINDEX('.',SUBSTRING(col,4,20),0)-1) AS NUMERIC)