Ordenar corretamente os números pontilhados armazenados como caracteres no SQL Server

Tenho uma tabela SQL que armazena um número de item personalizado. Cada um deles pode ter um filho separado dele com um separador de.. Cada um deles também pode ter um filh

Um exemplo do que poderia ser (novamente, dinâmico, não sei o que será):

Item Number
1
1.1
1.1.1
1.1.1.1
1.1.1.1.a
1.1.1.1.b
10
11
2.1
2.10
2.2
2.20
20
3
30

O que torna isso difícil é que esses números sejam criados em tempo real e não necessariamente em ordem. Você pode criar 5 números (1, 2, 3, 4, 5) e criar um filho de 1 para que não seja armazenado em ordem no banco de dado

Como seleciono na tabela e ordeno peloItem Number para que apareça corretamente, como acima, quando os dados não estiverem armazenados nessa orde

A maioria das soluções que tentei me dá1, 2, 3, 4, 5...1.1, 1.2 OR 1, 1.1, 1.1.1, 10, 11...2, 2.1, 20....3, 30, etc.

questionAnswers(7)

yourAnswerToTheQuestion