日期:2014-05-18  浏览次数:20432 次

sql记录查询,高手帮解决一下!!!
表   A   中有dabh字段,为varchar类型,
,如果我想   select   dabh   from   A   order   by   dabh   则显示
      dabh                                     而我最终想查询为:
---------               ---------
1           null                               1           null    
2           0                                     2           0    
3           1                                     3           1
4           10                                   4           10  
5           101                                 5           12
6           12                                   6           20
7           20                                   7           101  
8           ...                                 8           ...
100       a1                                   100       a1    
101       b1                                   101       b1    
xxx       ...                                 xxx       ...          

注:把null排到最前,然后把数字排到后面,最后把字母开头的放到最后,
        最后用一条SQL语句查询出来

        自己也做了一点用union连接:
    select   dabh   from   A   where   dabh   is   null   order   by   dabh  
union  
    select   dabh   from   A     where   not   dabh   is     null   and   dabh   not   like   '[a-z]% '   order   by   cast(dabh   as   int)  
union
    select   dabh   from   A     where   not   dabh   is     null   and   dabh   like   '[a-z]% '   order   by   dabh

    单用一句行,连接到一起就错。

    请高手指点一下。

------解决方案------------------