我正在使用现有数据库,并且有一个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);
但我不能说服自己这是对的。