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

来源:互联网 发布:js 滚动条居中 编辑:程序博客网 时间:2024/06/05 15:24

       今天有个需求是进行排序。  这一列值是字符串类型的, 但是里面有数值型 比如“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 ,

这样就能实现效果了


0 0