我有一个包含名为“状态”的属性的域。此属性可以包含“A”、“I”、“P”、“Pv”、“R”。
我有以下查询:
def list = Deal.findAll('from Deal as d')
如何对结果进行排序,以便始终在结果集顶部返回状态为“P”的行?(我不在乎它们之后的顺序是什么)。
这会做你想要的吗?通常我会在回答之前对其进行测试,但我没有简单的方法来做那个 atm。
def list = Deal.findAll('''from Deal as d order by case d.property when 'P' then 0 else 1 end''')
您可以将 sort 方法与比较器一起使用:
def list = Deal.findAll('from Deal as d').sort({a,b-> (a.status== 'P' && b.status != 'P') ? 0 : 1 })