Сортировать строку как число в SQL Server
У меня есть столбец, который содержит такие данные. тире указывают на несколько копий одного и того же счета, и они должны быть отсортированы в порядке возрастания
790711
790109-1
790109-11
790109-2
Я должен отсортировать его в порядке возрастания по этому числу, но так как это поле varchar, он сортирует в алфавитном порядке, как это
790109-1
790109-11
790109-2
790711
чтобы исправить это, я попытался заменить - (тире) на пустой, а затем привести его в число и затем отсортировать
select cast(replace(invoiceid,'-','') as decimal) as invoiceSort...............order by invoiceSort asc
в то время как это лучше и вроде как
invoiceSort
790711 (790711)