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