我有一張桌子:
| good_id | 從日期 | 迄今為止 |
|---|---|---|
| 1 | 2021-10-01 | 2021-10-03 |
我想得到這樣的資料表:
| good_id | 所有日期 |
|---|---|
| 1 | 2021-10-01 |
| 1 | 2021-10-02 |
| 1 | 2021-10-03 |
我嘗試將 Cross Join 與包含 10 月所有日期的 all_date 表一起使用。但它沒有用。你對這個問題有什么想法嗎?
uj5u.com熱心網友回復:
實際上,您的問題的解決方案通常是在另一個方向上完成的。我們通常從一個看起來像這樣的日歷表開始:
dates (dt)
----------
2021-10-01
2021-10-02
2021-10-03
然后將此表左連接到包含日期范圍的表,例如
SELECT d.dt
FROM dates d
LEFT JOIN yourTable t
ON d.dt BETWEEN t.from_date AND t.to_date;
請注意,SQL 通常不如生成新資料那么好。主要用于提取或更改已經存在的資料。使用如上所示的日歷表是??處理問題的標準方法。在實踐中,您可能會包含更多日期以涵蓋您期望在表中出現的任何資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/331632.html
標籤:sql
