我需要按如下顺序排列列:
1 2 10 100 Ape Cat Elephant Whatever
有人能帮我吗?
deikduxw1#
你可以非常接近:
order by (case when col >= '1' and col < '9999999' then 1 else 2 end), col
这样做的好处是可以处理几乎所有的数据库。但是,有些特定于数据库的解决方案可能更简单。编辑:如果要对以数字开头的数字进行数字排序,则可以使用:
order by (case when col >= '1' and col < '9999999' then 1 else 2 end), (case when col >= '1' and col < '9999999' then len(col) end), col
请注意,有些数据库使用 length() 而不是 len() .
length()
len()
tyky79it2#
按顺序从点中选择名称(名称>='0'和名称<'999999'时的大小写,然后是1或2结束),cast(名称为int),(名称>='1'和名称<'9999999'时的大小写,然后是长度(名称)结束)desc,名称asc
2条答案
按热度按时间deikduxw1#
你可以非常接近:
这样做的好处是可以处理几乎所有的数据库。但是,有些特定于数据库的解决方案可能更简单。
编辑:
如果要对以数字开头的数字进行数字排序,则可以使用:
请注意,有些数据库使用
length()
而不是len()
.tyky79it2#
按顺序从点中选择名称(名称>='0'和名称<'999999'时的大小写,然后是1或2结束),cast(名称为int),(名称>='1'和名称<'9999999'时的大小写,然后是长度(名称)结束)desc,名称asc