银行储蓄存款数据,查询排序的实现??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
------解决方案--------------------
探讨 Haiwer 海阔天空 的这个不对吗??? SQL codeselect * 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 --其次显示,一本通号和卡号都不为空的帐号数据,以…
------解决方案-------------------- 帮我把我的帐户余额update成9位数吧,谢谢楼主了...