银行储蓄存款数据,查询排序的实现??100分请教,在线等.
您好,请教您问题:  
(sql2000数据库)   
现有视图: v_储蓄   
查询数据(select * from  v_储蓄 ):   
    视图数据显示为:   
                  帐号         一本通号     卡号         ...(其他字段)
                 17010111123      23434432     354235235     // (帐号,   一本通号不为空, 卡号不为空 )
             17010100012      null         353202123      //( 帐号,      一本通号为空,  卡号不为空 )
                        17021312313      null         354425352    
                        17010000003      21897987      null          //(帐号,   一本通号不为空, 卡号为空)
                        17012313121      null          null          //( 帐号,      一本通号为空,  卡号为空 )
                        17012876876      22431242      null           //(帐号,      一本通号为空,  卡号不为空 )
                       .........        ..........    ........   
视图定义规则:   
         帐号为主键,具有唯一性,不为空  
         帐号对应其他字段,存在以下数据关系:
                  帐号,   一本通号不为空, 卡号不为空   
                  帐号,   一本通号不为空, 卡号为空
                  帐号,      一本通号为空,  卡号不为空   
                  帐号,      一本通号为空,  卡号为空       
现在想对 视图做查询并排序,用一个T_sql语句,要求排序能实现以下效果:                        
                                                                                                                  帐号    一本通号   卡号  
   首先显示, 一本通号为空,卡号为空的帐号数据.(按帐号升序)                     即:17012313121     null      null   
   其次显示,一本通号和卡号都不为空的帐号数据,以及,一本通号为空,卡号不为空的帐号数据.(按卡号升序) 即:17010100012     null   353202123   
                                                                                                   17010111123   23434432 354235235   
                                                          17021312313     null    354425352        
   然后显示,一本通号不为空,卡号为空的帐号数据.(按一本通号升序)                   即:17010000003   21897987    null   
                                                        17012876876   22431242    null          
我实现的T_sql语句为:   
          select * from  v_储蓄  order by 一本通号,卡号,帐号 asc  ;   
      这样没办法实现  : 一本通号和卡号都不为空的帐号数据,以及,一本通号为空,卡号不为空的帐号数据.(按卡号升序)   
 求助,在线等:
------解决方案-------------------- 同情你,帮顶.
------解决方案-------------------- 格式好乱啊。
整理下再看。
------解决方案-------------------- 看的出来楼主很急。不过太乱了。贴再多遍,效果也是一样。。
最好整理下后再发吧```
------解决方案--------------------  建议把需求整理下,说清楚
------解决方案-------------------- 
  Haiwer  
海阔天空  
的这个不对吗???  
SQL code
select * from v_储蓄
order by case when 一本通号 is null and 卡号 is null then 1 --首先显示, 一本通号为空,卡号为空的帐号数据
   when 卡号 is not null then 2 --其次显示,一本通号和卡号都不为空的帐号数据,以及,一本通号为空,卡号不为空的帐号数据.
   when 一本通号 is not null then 3 --其次显示,一本通号和卡号都不为空的帐号数据,以及,一本通号为空,卡号不为空的帐号数据.
   else 4
   end,case when 一本通号 is null and 卡号 is null then 帐号
   when 卡号 is not null then 卡号
   when 一本通号 is not null then 一本通号
   else 一本通号
   end
------解决方案--------------------  探讨 ------解决方案--------------------