如何从查询中获取值手册ORDER BY?

时间:2018-06-06 09:59:32

标签: sql-order-by odoo psql odoo-10

我在代码中应用了查询以获取值并且我收到了值,但这些值随机出现的不是'ORDER BY'。那么,如何定义这些值?

以下是我的查询,它是o / p:

"""select distinct src, field_description, value from ir_translation, ir_model_fields where module='P2N_Sales' and ir_translation.src = ir_model_fields.field_description and model='sale.mail.wizard' and ir_model_fields.name in ('status','order','customer','pet_name','services', 'amount','msg');"""

enter image description here

1 个答案:

答案 0 :(得分:0)

你把允许值放在" WHERE ir_model_fields.name in()"中的顺序子句对最终结果完全没有影响。如果希望查询结果按特定顺序,则需要添加order by子句。

因为您想要的订单不是标准的字母顺序,所以您需要创建自己的重新排序。

如果您的表中包含这些值,则可以向该表添加自定义排序顺序列,加入该表并对排序顺序列进行排序。

如果没有合适的表,则需要在ORDER BY子句中创建自己的可排序值,如下所示。 else列将任何其他值放在底部。

<rest of query here>
ORDER BY
case when ir_model_fields.name = 'status' then 1
     when ir_model_fields.name = 'order' then 2
     when ir_model_fields.name = 'customer' then 3
     when ir_model_fields.name = 'pet_name' then 4
     when ir_model_fields.name = 'services' then 5
     when ir_model_fields.name = 'amount' then 6
     when ir_model_fields.name = 'msg' then 7
     else 8 
     end