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;
もちろん、バージョン番号のすべての部分が有効な整数であると仮定します。