我有这样的记录:
id, hstore_col 1, {a: 1, b: 2} 2, {c: 3, d: 4} 3, {e: 1, f: 5}
如何在hstore中按 任何 属性的最大值/最小值对它们进行排序?
结果应如下所示(按最低顺序排列):
id, hstore_col 1, {a: 1, b: 2} 3, {e: 1, f: 5} 2, {c: 3, d: 4}
我知道,我只能按如下特定属性来排序它们:my_table.hstore_fields -> 'a',但不适用于我的问题。
my_table.hstore_fields -> 'a'
使用转换为数组avals并将结果数组从文本转换为整数。然后对数组进行排序,并按排序后的数组的第一个元素对结果进行排序。
avals
select * from mytable order by (sort(avals(attributes)::int[]))[1]
http://sqlfiddle.com/#!15/84f31/5