如何重复每一行两次

Cod*_*nja 4 sql sql-server sql-server-2008-r2 sql-server-2012

我需要一个报告,我希望我的SQL查询重复每一行两次.

示例:

  **Table 1**
   Id   Name
   1     Ab
   2     Cd
   3     Ef
Run Code Online (Sandbox Code Playgroud)

我想编写一个输出以下内容的查询:

  1   Ab
  1   Ab
  2   Cd
  2   Cd
  3   Ef
  3   Ef
Run Code Online (Sandbox Code Playgroud)

有没有办法可以做到?

除了使用之外我什么都想不到 union

Select Id, name from Table1 union select Id, name from Table1
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 13

你可以使用union all.A union将无效,因为它将消除重复.另一种方式是cross join:

select id, name
from table1 t1 cross join
     (select 1 as n union all select 2) n;
Run Code Online (Sandbox Code Playgroud)

  • 或者稍微简洁一点的版本`select id,table1 from name1 CROSS APPLY(VALUES(1),(2))V(n)` (3认同)