对混合数值,字符,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 ,

这样就能实现效果了


上一篇:一座城池


下一篇:(WCF初体验)WCF的认证和消息保护