次のようにしてみてください:
編集:'123abc' のような数値以外の値も扱うようにアプローチを変更しました.
declare @ids table(idList varchar(100))insert into @ids values ('1.1'),('1.2'),('2.8'),('2.7'),('6.5' ),('6.5.1'),('6.5.15'),('7.1'),('8');select idList,padded.OrderByfrom @ids as idscross apply(select cast('' + replace(idList,'.',' ') + ' ' as xml)) as AsXml(val)cross apply( select right(' ' + rtrim(x.y.value(') .','varchar(max)')),10) from AsXml.val.nodes('/r') as x(y) for xml path('')) as padded(OrderBy)order by padded.OrderByコード> プレ>