对混合数值,字符,null的字段进行排序-阿里云开发者社区

开发者社区> 云计算> 正文

对混合数值,字符,null的字段进行排序

简介:        今天有个需求是进行排序。  这一列值是字符串类型的, 但是里面有数值型 比如“1” 和null类型的。  实现效果是需要 数值型的先按照数值的方式先排,然后字符串按照字符传排,最后才是null的。

       今天有个需求是进行排序。  这一列值是字符串类型的, 但是里面有数值型 比如“1” 和null类型的。  实现效果是需要 数值型的先按照数值的方式先排,然后字符串按照字符传排,最后才是null的。

       最开始就想到当为数值时 需要转换 如下

order by CASE WHEN ISNUMERIC("字段名")= 1 THEN CONVERT(INT, "字段名") 
         ELSE NULL
         END ,

这样到能实现数值型的 就是按照数值来排序,但是这些排序中间还会穿插 字符串和null的, 所以还得想办法把这数值,字符,null分开来。。后面有人告诉我了一个方法,

用 

CASE WHEN ISNUMERIC("字段名") = 1 THEN 1 
              WHEN 字段名 IS NULL THEN 3
              ELSE 2
         END ,

这样就能实现效果了


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章