强制重复具有不同派生值的行

air*_*wer 2 sql t-sql

我有一个简单的查询

SELECT  Group, Value, NULL AS MONTH from tbl_A
Run Code Online (Sandbox Code Playgroud)

返回

 Group   Value  Month
 A       100    NULL
 B       110    NULL
Run Code Online (Sandbox Code Playgroud)

我正在寻求回归的结果

Group   Value  Month
A       100    1
A       100    2
A       100    3
...
B       110    1
B       110    2
B       110    3
...
Run Code Online (Sandbox Code Playgroud)

换句话说,我需要能够定义值列表,并为定义的"月份"列表中的每个值重复每个结果行.它们实际上是日期,但为了清晰起见,我在这里使用了整数.

Gio*_*sos 7

您可以使用VALUES子句来定义表值构造函数(TVC).然后CROSS APPLY为了获得所需的结果集:

SELECT  [Group], Value, x.y AS MONTH 
from tbl_A
CROSS APPLY (VALUES (1), (2), (3)) x(y)
Run Code Online (Sandbox Code Playgroud)

SQL小提琴演示