我如何自動生成表至12個月這樣的:自動生成12個月
tbl_name
1
2
3
4
5
6
7
8
9
10
11
12
這裏是我做了什麼:
tbl_month
從tableA
將顯示1
SELECT tbl_month FROM tableA WHERE type='Settings' and code='M'
我如何自動生成表至12個月這樣的:自動生成12個月
tbl_name
1
2
3
4
5
6
7
8
9
10
11
12
這裏是我做了什麼:
tbl_month
從tableA
將顯示1
SELECT tbl_month FROM tableA WHERE type='Settings' and code='M'
,如果你想從1到12的數字產生那麼試試這個:
;WITH tableA
AS (SELECT 1 [MM]
UNION ALL
SELECT [MM] + 1
FROM tableA
WHERE [MM] < 12)
SELECT *
FROM tableA
此外,您可以UNION /與任何其他表加入這個。 在許多情況下,例如,你想選擇的行已在tableB
缺失(在一個序列):
;WITH tableA
AS (SELECT 1 [MM]
UNION ALL
SELECT [MM] + 1
FROM tableA
WHERE [MM] < 12)
SELECT *
FROM tableA
LEFT JOIN tableB
ON tableA.MM = tableB.MM
這將顯示爲產品,不能在tableB
這幾個月也行。
酷!有用! 謝謝! – AutoX
這是一種產生數字的廣義方式。也請查看@Giorgi的回答。 –
如果你的任務就是產生個月,然後你可以這樣做簡單,如:
select m
from (values(1),(2),...(12)) t(m)
如果你想離開加盟則:
select *
from (values(1),(2),...(12)) t(m)
left join TableA a on t.m = a.m
不錯,謝謝你的分享。 – AutoX
請標記數據庫引擎名稱。 –
你是否想要從1到12生成數字呢? – Rocketq
是,使用SELECT語句從表A和tableB的 – AutoX