Sql Postgres-用户定义的订单序列
我在数据库表中有一列,它可能包含数量有限的字符串之一:[“Recht”、“Abteilung”、“Strecke”、“Stelle”、“Gemarkung”、…] 我想对表执行查询,根据此列对结果进行排序,但不是字母数字,而是用户定义的,即“Abteilung”之前的“Recht”后跟“Strecke”Sql Postgres-用户定义的订单序列,sql,postgresql,Sql,Postgresql,我在数据库表中有一列,它可能包含数量有限的字符串之一:[“Recht”、“Abteilung”、“Strecke”、“Stelle”、“Gemarkung”、…] 我想对表执行查询,根据此列对结果进行排序,但不是字母数字,而是用户定义的,即“Abteilung”之前的“Recht”后跟“Strecke” 可以这样使用用户定义的顺序吗?在Postgres中使用数组可以实现这一点: order by array_position(array['Recht', 'Abteilung', 'Streck
可以这样使用用户定义的顺序吗?在Postgres中使用数组可以实现这一点:
order by array_position(array['Recht', 'Abteilung', 'Strecke', 'Stelle', 'Gemarkung'], 'a_column') nulls last
数组的使用使得逻辑非常简洁——并且更易于维护。数组也可以作为参数传入,这非常方便。按情况排序,当column='Recht'时为1,当column='Abteilung'时为1,当column='Abteilung'时为2,结束时为2,类似这样的情况谢谢,这很有用。不过,无需进行否决表决,这是一个有效的问题,有一个有用的答案。