1

我在 postgres 表中有一些数据,其中有一列称为版本(类型为 varchar)。我想使用我自己的比较函数对该列进行排序/排序,但我不确定最合适的答案是什么:

  • 我有一个样式 comp(left, right) -> -1/0/1 的 JS 实现,但我不知道如何在 sql order by 子句中使用它(通过 plv8)
  • 我可以编写一个 C 扩展,但我对此并不特别兴奋(主要是出于维护原因,因为用 C 编写比较本身并不会太困难)
  • 其他的 ?

我感兴趣的比较类型类似于包管理器中使用的版本字符串排序。

4

1 回答 1

1

你要:

ORDER BY mycolumn USING operator

参阅SELECT. 看起来您可能需要为函数定义一个运算符,以及一个包含要使用它的运算符的 b-tree 运算符类;你不能只写USING myfunc()

(现在没有时间测试并编写演示)。

于 2014-01-29T03:27:38.313 回答