如何根据某些值在光标中按条件更改顺序

时间:2014-07-09 10:54:26

标签: sql oracle plsql

这是我的问题。

if ord = 'd' then
   Ordby:= 'name'
else
   Ordby:= 'type'.
end if;
declare cursor file is
  select type,name,location, from filemstr order by ordby;
  begin
    for i in file
    loop
  end;

问题是ordby的顺序不起作用。它总是默认排序。可以使用变量来订购吗?我需要在以下条件下订购。我不想两次声明光标。

1 个答案:

答案 0 :(得分:2)

declare cursor file is
  select type,name,location, from filemstr order by decode(ord,'d',name,type)
  begin
    for i in file
    loop
  end;