verticaデータベースで数値的にvarchar列で注文する方法は?
たとえば、Oracle の order by 句に +0 を追加して、varchar 列を数値順に並べ替えることができます。
ありがとう!
のようにキャストを使用する
select x from foo order by cast(x as int);
すべての値をintにキャストできない場合は、エラーが発生します。
データが真の数値データである場合、「+0」は要求どおりに変換されますが、変換できない値がある場合、クエリは次のようなエラーを返します。
エラー: 「200 ... something」を列 table_name.column_name から数値に変換できませんでした
Vertica でこれを行ったことはありませんが、この種の問題に対するアドバイスは同じです。Vertica は多くの PostgreSQL 機能を利用しているため、PostgreSQL がどのようにそれを行うかを理解し、それを試してみてください。
簡単な検索を行ったところ、可能な解決策としてこれを思いつきました: http://archives.postgresql.org/pgsql-general/2002-01/msg01057.php
より徹底的に検索すると、より良い答えが得られる場合があります。