自动生成12个月

时间:2015-04-23 13:17:27

标签: sql sql-server

如何将表格自动生成为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'

2 个答案:

答案 0 :(得分:3)

如果您的任务只是产生数月,那么您可以这样做:

 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

答案 1 :(得分:1)

如果你想生成1到12之间的数字,那么试试这个:

;WITH tableA
     AS (SELECT 1 [MM]
         UNION ALL
         SELECT [MM] + 1
         FROM   tableA
         WHERE  [MM] < 12)
SELECT *
FROM   tableA 

此外,您可以使用任何其他表来UNION / JOIN。 例如,在许多情况下,您需要选择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