自动生成12个月
我如何自动生成表至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