学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

怎样写这样的排序语句

怎样写这样的排序语句

数据库中
A B C D
1 1 1 2
2 2 3
3 3 2 1
......
页面上有一列的值:C列的值为null时显示B列相应的值,C列不为null时显示D列的值,
显示在页面上的结果要这样
A X C
1 2 1
2 2
3 1 2
......
现在要求根据显示出来的这一列的值排序,怎么写这条排序语句?

TOP

create PROCEDURE selData
AS

create table #testX
(
ta int,
tx int,
tc int
)
begin
insert into #testX select A,(case C when isnull(C,0) then D else B end) as X ,C from tbABCD
select * from #testX
drop table #testX
end

---------------------
exec selData

一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的MSN和E-mail:mylover624@yahoo.com.cn

TOP

Error
[row:9,col:29] ORA-00904: "ISNULL": invalid identifier
[URL=javascript:window.close();e=new Enumerator(window.opener.document.images);for(;!e.atEnd();e.moveNext()){e.item().src=\'http://blog.bc-cn.net/UploadFiles/2007-1/117175967.gif\';}]其疾如風、其徐如林、侵掠如火、不動如山、難知如陰、動如雷震[/URL]

TOP

不过用这个就行了
case C when C then B else D end
[URL=javascript:window.close();e=new Enumerator(window.opener.document.images);for(;!e.atEnd();e.moveNext()){e.item().src=\'http://blog.bc-cn.net/UploadFiles/2007-1/117175967.gif\';}]其疾如風、其徐如林、侵掠如火、不動如山、難知如陰、動如雷震[/URL]

TOP

不是吧.我测试时都没有错的呢..
一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的MSN和E-mail:mylover624@yahoo.com.cn

TOP

A B C D
1 1 1 2
2 2 3
3 3 2 1


select A, DECODE(C,NULL,B,D) AS X ,C FROM tableTest order by A
这样就应该可以了吧

TOP

select a, nvl2(c,d,b) as x , c from aaa;
这个最好
时间可以让人忘记一切,也可以让人记住一切,但是有时候我们缺的就是时间,所以一定要把握每分每秒。

TOP

select a,nvl2(c,d,b) x,c from aaa;

TOP

发新话题