日期:2014-05-17  浏览次数:20706 次

一个排序的sql
SQL code

字段
id   col1  col2
1     3     4
2     55    66
3     44    33


查询结果降序排列,按照col1和col2中大的那个值排序,也就是order by max(col1,col2),就是这个意思,不知道各位看的明白不~~~

------解决方案--------------------
[code=SQL]
select id,col1,col2
from t
 order by greatest(col1,col2);
--最小用 least
[code]
------解决方案--------------------
SQL code

with t(id,col1,col2) as(
select 1,3,4 from dual
union all select 2,55,66 from dual
union all select 3,67,33 from dual
union all select 4,1,77 from dual
union all select 5,2,76 from dual
)
select * from t order by (case when col2>col1 then col2 else col1 end);

------解决方案--------------------
探讨
SQL code


select id,col1,col2
from t
order by greatest(col1,col2);
--最小用 least

------解决方案--------------------
select * from table order by (case when col2>col1 then col2 else col1 end);
试下这个。。
------解决方案--------------------
探讨
select * from table order by (case when col2>col1 then col2 else col1 end);
试下这个。。

------解决方案--------------------
探讨
SQL code


select id,col1,col2
from t
order by greatest(col1,col2);
--最小用 least

------解决方案--------------------
探讨
[code=SQL]
select id,col1,col2
from t
order by greatest(col1,col2);
--最小用 least
[code]

------解决方案--------------------
oracle里面 函数挺多的 要靠自己挖掘了 很多功能强大但是用到的比较少
------解决方案--------------------
with t(id,col1,col2) as(
select 1,3,4 from dual
union all select 2,55,66 from dual
union all select 3,67,33 from dual
union all select 4,1,77 from dual
union all select 5,2,76 from dual
)
select * from t order by (case when col2>col1 then col2 else col1 end);

------解决方案--------------------
探讨
SQL code


select id,col1,col2
from t
order by greatest(col1,col2);
--最小用 least