在写一句oracle 希望大家帮帮忙
外部传来两个参数col_num ase_desc
col_num 指定排序列(1 or 2 or 3)
ase_desc指定升降序(0 or 1)
表A
col_1 col_2 col_3
1 c 2:22
4 a 15:43
3 j 14:03
...
order by 处如何写?
我现在用order by
case col_num
when 1 then col_1
when 2 then col_2
when 3 then col_3
end
参数ase_desc 放不进去
如果col_num 是2 ase_desc是1
结果就是
col_1 col_2 col_3
3 j 14:03
1 c 2:22
4 a 15:43
...
------解决方案--------------------
降序为desc,升序是不是ase记不清了,试一下:
select * from test order by decode(col_num,1,col_1,2,col_2,col_3) decode(ase_desc,1,desc,ase);