自动生成12个月

问题描述:

我如何自动生成表至12个月这样的:自动生成12个月

tbl_name  
    1 
    2 
    3 
    4 
    5 
    6 
    7 
    8 
    9 
    10 
    11 
    12 

这里是我做了什么:

tbl_monthtableA将显示1

SELECT tbl_month FROM tableA WHERE type='Settings' and code='M' 
+1

请标记数据库引擎名称。 –

+0

你是否想要从1到12生成数字呢? – Rocketq

+0

是,使用SELECT语句从表A和tableB的 – AutoX

,如果你想从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这几个月也行。

+0

酷!有用! 谢谢! – AutoX

+0

这是一种产生数字的广义方式。也请查看@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 
+0

不错,谢谢你的分享。 – AutoX