SQL - Kolejność według znaków alfanumerycznych

Mam następującą tabelę:

create table #tbl
(
 product_id nvarchar(50)
)

insert into #tbl values ('011014-A11')
insert into #tbl values ('011014-A10')
insert into #tbl values ('011014')
insert into #tbl values ('011014-A1')
insert into #tbl values ('011014-A2')

Chcę zamówić identyfikatory produktu w ten sposób (od najmniejszego do największego):

011014
011014-A1
011014-A2
011014-A10
011014-A11

To właśnie próbowałem, ale nie działa:

select product_id
from #tbl
order by product_id desc

Jak mam to zrobic?

A jak mogę uzyskać tylko najlepsze id_produktu? Próbowałem tego, ale to nie zadziałało:

select top 1 product_id
from #tbl
order by product_id desc

questionAnswers(2)

yourAnswerToTheQuestion