如有某字符型字段
 PX
  1
  9
  空
  8
  16
  空
  10要将这个px字符串型字段进行排序,要如何进行,试过进行转换为数值型,可遇空值是不好处理,而且前题为查询结果如果要转换不能让其空值为数字

解决方案 »

  1.   

    将空结果用where 排除掉啊.
      

  2.   

    在SQL Server中,空值是最大的。
    你可以直接排,或者转换空值后再排序。
    转换函数:IsNull(字段,如果为空后的取值)
      

  3.   

    不好意思没讲清楚
    如:
    px0 PX
    1  1 
    1  9 
    3  空 
    1  8 
    1  16 
    4  空 
    1  10 结果:
    px0 PX
    1  1 
    1  8
    1  9 
    1  10 
    1  16 
    3  空 
    4  空 先要以px0字段为先排序,然后以px排序(字符型字段)
      

  4.   


    DECLARE @T TABLE(px0 int,PX varchar(10))
    INSERT @T SELECT 1,'1'
    UNION ALL SELECT 1,'9'
    UNION ALL SELECT 3,NULL
    UNION ALL SELECT 1,'8'
    UNION ALL SELECT 1,'16'
    UNION ALL SELECT 4,NULL
    UNION ALL SELECT 1,'10'
    SELECT *
    FROM @T
    ORDER BY px0,cast(px as int)