order by節で関数呼び出しの結果を使用する方法はありますか?PostgreSQLの関数の結果をORDER BYで返します
私の現在の試み(私も少し変わってみました)。
SELECT it.item_type_id, it.asset_tag, split_part(it.asset_tag, 'ASSET', 2)::INT as tag_num
FROM serials.item_types it
WHERE it.asset_tag LIKE 'ASSET%'
ORDER BY split_part(it.asset_tag, 'ASSET', 2)::INT;
私の一般的な仮定は、これを行うことができないということですが、私は私は考えていなかったこと、これを達成するための方法があったかどうかを知りたかったです。
EDITは:上記のクエリは、クエリは、一般的にOKで、次のエラーに[22P02] ERROR: invalid input syntax for integer: "******"
'ORDER BY tag_num'を試してみるとどのようなエラーが発生しますか? –
@ MikeSherrill'CatRecall '直接関数呼び出しを使用するかどうか、または列エイリアスを使用するかどうかにかかわらず、同じエラーが発生します。 – Jared
サブクエリに配置することはできますが、別の方法でもパフォーマンスに影響する可能性があります。 'SELECT * FROM(select it.item_type_id、it.asset_tag、split_part(it.asset_tag、 'ASSET'、2):: INTはtag_numとして からserials.item_typesから WHERE it.asset_tag LIKE 'ASSET%')をsq ORDER BY sq.tag_num'が動作するはずです。 – coladict