我想根據一個時間范圍查詢資料庫,但我也想在開始時間之前添加行。
time | col1 | col2
10 | a | b
15 | c | d
23 | e | f
45 | G | h
61 | i | j
70 | k | l
例如,如果我想查詢時間范圍為14至65的行,我希望結果是
10 | a | b
15 | c | d
23 | e | f
45 | G | h
61 | i | j
正如你所看到的,它實際上是對時間14(開始時間)到65(結束時間)的常規查詢,加上14之前的任何行。 我知道實際上并沒有時間為14的行,但是我希望這個場景也能作業。
為了實作這個目標,SQL查詢應該是怎樣的呢?
uj5u.com熱心網友回復:
你可以使用lead():
select t.*
from (select t.*,
lead(time) over (order by time) as next_time
from t
) t
where next_time between 14 and 65 or
time between 14 and 65。
假設你在這個范圍內至少有一條記錄,你可以將其簡化為:
where next_time >= 14 and
time <=65
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/321950.html
標籤:
上一篇:與相關表格中的條件結盟
