[英]Sort in postgres in ascending order with 0 last
因此,我嘗試按星期0-6(星期天-星期六)的日期進行排序,但我想先星期一。 因此,在數據庫中,我存儲星期幾,第一個星期日為0。但是我可以對它進行排序,使第一個星期一為第一嗎?
因此它將是1、2、3、4、5、6、0。這是否可能,或者我應該以其他方式存儲數據嗎? 僅以這種方式存儲它,因為Date :: DAYNAMES是如何索引星期幾。
現在我有類似的東西:
TimeModel.order(:day_of_week)
如果我想先星期日,那很好。
您可以在PostgreSQL中執行此操作以訂購表的特定值:
TimeModel.order('CASE WHEN day_of_week = 0 THEN 7 ELSE day_of_week END')
這是PostgreSQL語法中的一個簡單的switch case語句。
我不知道如何在Ruby中執行此操作,但是SQL查詢很簡單:只需對
(day_of_week + 6) % 7
其中%
是模數運算。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.