簡體   English   中英

按升序排序postgres,最后0個

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM