Сортировать строку как число в 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)   

Ответы на вопрос(9)

Ваш ответ на вопрос