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