2012-02-22 6 views
1

return nextを使用してレコードセット(RETURNS SETOF)を返す関数を作成しました。関数によって返されたsetofレコードのソート

戻す前に結果セットをソートする方法はありますか?セットの参照にアクセスし、それをソートしてからリターンするようなものです。 私は既にいくつかのクエリでorder byを使っていましたが、結果を並べ替えるために追加のコードを書く必要があります。

select * from (select * from myfunction()) d 
order by d.whatever,d.othercolumn 

ありがとう:私はこのような機能を呼んでいる回避策として

答えて

1

次回にデータを注文することができない場合は、次の関数の呼び出しを別の関数で折り返し、希望の順序でデータを選択して返すことができます。

+0

ありがとう、私はそれをやると思います。 –

+1

注:関数の結果セットを別の「実際の」テーブルとの結合で使用すると、クエリオプティマイザはその順序を「見える」ことはできません(関数の内部を見ることはできません)ので、結合には明示的ソート・ステップ+マージ、またはハッシュ・ルックアップ。 – wildplasser

関連する問題