HSTORE按键/值排序,其中值是整数的字符串表示形式

时间:2017-03-07 21:58:54

标签: postgresql hstore

我正在使用现有数据库,并且有一个hstore列,其内容是指向存储为字符串的整数的键。

我正在尝试使用该值进行排序的代码但不幸的是,因为它是一个字符串,我得到的不足为奇的行为是" 10"来之前" 2"。我没有更改表中数据的许可,因此我正在寻找一种编写订单的方法,以便按值整数而不是字符串排序。

这是一些玩具SQL,希望能更好地展示我所要求的内容:

INSERT INTO hstore_test (sale) 
        VALUES ('"milk"=>"4", 
                 "bread"=>"2", 
                 "bananas"=>"12", 
                 "cereal"=>"1"');

现在,在这一点上,我希望得到所有的东西,按牛奶分类 - >值:

SELECT * FROM hstore_test ORDER BY sale -> 'milk';

不幸的是,这会按牛奶的字符串值排序(" 4"在上面的示例中)。

我有点想象

这样的东西
SELECT * FROM hstore_test ORDER BY CAST(sale -> 'milk' as INT);

但我不能说服自己这是对的。

0 个答案:

没有答案