a variation....
DECLARE@NumberTable TABLE( ItemNumber VARCHAR(50))
INSERT@NumberTable
SELECT'ABC-1702-XYZ' ItemNumber UNION ALL
SELECT'ABC-1727-XYZ'UNION ALL
SELECT'ABC-1729-XYZ'UNION ALL
SELECT'ABC-895-XYZ'UNION ALL
SELECT'ABC-2119-XYZ'UNION ALL
SELECT'ABC-1746-XYZqqqq'UNION ALL
SELECT'ABC-900-dfdfdfXYZ'UNION ALL
SELECT'ABCasasa-2215-XYZabc'UNION ALL
SELECT'ABC-64533333-XYZ'UNION ALL
SELECT'ABC121-1783-333XYZ'UNION ALL
SELECT'ABC-2193-XYZ'UNION ALL
SELECT'ABC-830-XYZ'UNION ALL
SELECT'ABC-646-XYZ'UNION ALL
SELECT'ABC-796-XYZ'
select *
from @NumberTable
order by cast (SUBSTRING(
ItemNumber,
CHARINDEX('-', ItemNumber) + 1,
LEN(ItemNumber) - CHARINDEX('-', ItemNumber) - CHARINDEX('-', REVERSE(ItemNumber))) as int)
________________________________________________________________
you can lead a user to data....but you cannot make them think
and remember....every day is a school day