如何将每一行重复两次

Posted

技术标签:

【中文标题】如何将每一行重复两次【英文标题】:how to repeat each row twice 【发布时间】:2014-11-03 15:18:37 【问题描述】:

我需要一份报告,我希望我的 sql 查询将每一行重复两次。

例子:

  **Table 1**
   Id   Name
   1     Ab
   2     Cd
   3     Ef

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

  1   Ab
  1   Ab
  2   Cd
  2   Cd
  3   Ef
  3   Ef

有什么办法可以做到吗?

除了union,我什么都想不出来

Select Id, name from Table1 union select Id, name from Table1

【问题讨论】:

【参考方案1】:

您可以使用union allunion 不起作用,因为它会消除重复项。另一种方式是cross join

select id, name
from table1 t1 cross join
     (select 1 as n union all select 2) n;

【讨论】:

+1 表示交叉连接。使用任何类型的联合解决方案,您都必须两次维护对查询的任何更改。 或者更简洁的版本select id, name from table1 CROSS APPLY (VALUES(1),(2)) V(n) 您能否非常友好地澄清以下行 (select 1 as n union all select 2) n 的含义?特别是select 1 and select 2. @StepUp 。 . .这将创建一个包含两行一列的派生表。在一行中,列的值为“1”。另一个是“2”。 @GordonLinoff 但是输出应该是1 Ab 1 1 Ab 2 2 Cd 1 2 Cd 2 3 Ef 1 3 Ef 2UNION ALL 如何使秒行与前一行相同。我只是拉着头。提前致谢。【参考方案2】:

解决办法是这样的:

select Id, name from Table1 
union all 
select Id, name from Table1

【讨论】:

【参考方案3】:

您也可以使用UNION ALL,将它们放在CTE(公用表表达式)和Order By Id下:

WITH CTE AS
( 
SELECT Id, Name FROM Table_1
    UNION ALL
SELECT Id, Name FROM Table_1
)
SELECT Id, Name
FROM CTE
ORDER BY Id;

因为这会将它们重新排序并将它们堆叠作为重复项

【讨论】:

以上是关于如何将每一行重复两次的主要内容,如果未能解决你的问题,请参考以下文章

dataTable如何重新初始化

如何避免重复请求按钮单击两次

Vue js如何防止按钮连续点击两次[重复]

django如何两次渲染相同的模板[重复]

如何避免两次编写 SQL Server 查询以避免重复?

我将如何阻止随机颜色随机选择两次相同的颜色[重复]