Postgresのソフトウェアバージョンを比較する 質問する

Postgresのソフトウェアバージョンを比較する 質問する

Postgres でソフトウェア バージョン (例: XYZ > ABC) を比較する方法はありますか? 文字列/varchar または「バージョン」型の関数を探しています。

そうだと分かったhttp://pgxn.org/dist/semver/doc/semver.html、代替手段を探しています(展開がそれほど簡単ではありません...)

ベストアンサー1

使用string_to_array()高価な正規表現は必要ありません。

SELECT string_to_array(v1, '.')::int[] AS v1
     , string_to_array(v2, '.')::int[] AS v2
     ,(string_to_array(v1, '.')::int[] > string_to_array(v2, '.')::int[]) AS cmp
FROM   versions;

フィドル
古いsqlfiddle

もちろん、バージョン番号のすべての部分が有効な整数であると仮定します。

おすすめ記事