WITH SampleData (BipolarNumbers) AS ( SELECT '1' UNION ALL SELECT '100231-A' UNION ALL SELECT '1003' UNION ALL SELECT '11' UNION ALL SELECT '11342' UNION ALL SELECT '11342-A' UNION ALL SELECT '12')SELECT BipolarNumbersFROM SampleDataORDER BY CAST(LEFT(BipolarNumbers ,CASE PATINDEX('%[^0-9]%', BipolarNumbers) WHEN 0 THEN LEN(BipolarNumbers) ELSE PATINDEX('%[^0-9]%', BipolarNumbers) - 1 END) AS INT);WITH SampleData (BipolarNumbers) AS ( SELECT '1' UNION ALL SELECT '100231-A' UNION ALL SELECT '1003' UNION ALL SELECT '11' UNION ALL SELECT '11342' UNION ALL SELECT '11342-A' UNION ALL SELECT '11342-B' UNION ALL SELECT '12')SELECT BipolarNumbersFROM SampleDataORDER BY CAST(LEFT(BipolarNumbers ,CASE PATINDEX('%[^0-9]%', BipolarNumbers) WHEN 0 THEN LEN(BipolarNumbers) ELSE PATINDEX('%[^0-9]%', BipolarNumbers) - 1 END) AS INT) ,PATINDEX('%[^0-9]%', BipolarNumbers)
WITH SampleData (BipolarNumbers) AS ( SELECT '1' UNION ALL SELECT '100231-A' UNION ALL SELECT '1003' UNION ALL SELECT '11' UNION ALL SELECT '11342' UNION ALL SELECT '11342-A' UNION ALL SELECT '11342-B' UNION ALL SELECT '12')SELECT BipolarNumbersFROM SampleDataORDER BY CAST(LEFT(BipolarNumbers ,CASE PATINDEX('%[^0-9]%', BipolarNumbers) WHEN 0 THEN LEN(BipolarNumbers) ELSE PATINDEX('%[^0-9]%', BipolarNumbers) - 1 END) AS INT) ,BipolarNumbers
ORDER BY RIGHT(SPACE(20)+BipolarNumbers,20) ASC
Far away is close at hand in the images of elsewhere.
Anon.