我一直致力于生成一个以句点分隔的整数层次结构,该层次结构通过选择查询执行“自然”顺序。我试了一下,下面的查询被吹捧为十进制排序的解决方案:
select id
from tablenm
order by
case isnumeric(id + 'e0')
when 1 then 0
else 1
end,
id
但是,从技术上讲,我并不是在所有情况下都使用小数,所以我只取得了一些有限的成功。请注意,此层次结构中可能有多个级别 - 为了简洁起见,我在示例中仅显示了三个级别。
上面的 SQL 产生以下输出:
id
1
1.1
5
5.1
5.10
5.2
1.5.1
4.2.1
1.3.1
3.2.1
我需要它看起来像:
id
1
1.1
1.3.1
1.5.1
3.2.1
4.2.1
5
5.1
5.2
5.10
感谢您提供的任何见解。