如何在sql查询中复制每一行

时间:2014-10-06 14:29:44

标签: sql-server duplicates record

我一直试图为这个案例找到解决方案。

现在我正在尝试在单个表中的每一行中创建和检索重复值

date      date_year, date_month, date_day, weeday_nm, start_time,               end_time
2014-10-6  2014       10           6         Monday    2014-10-06 00:00:00.000,2014-10-06 23:59:59.000
2014-10-7  2014       10           7         Tuesday   2014-10-07 00:00:00.000,2014-10-07 23:59:59.000

在输出中,我想看一条记录

date      date_year, date_month, date_day, weeday_nm, start_time,               end_time
2014-10-6  2014       10           6         Monday    2014-10-06 00:00:00.000,2014-10-06 23:59:59.000
2014-10-6  2014       10           6         Monday    2014-10-06 00:00:00.000,2014-10-06 23:59:59.000
2014-10-7  2014       10           7         Tuesday   2014-10-07 00:00:00.000,2014-10-07 23:59:59.000
2014-10-7  2014       10           7         Tuesday  2014-10-07 00:00:00.000, 2014-10-07 23:59:59.000'
'
'
'
'
'

有这么多行有什么方法可以完成这个案子吗?

1 个答案:

答案 0 :(得分:0)

CROSS JOIN添加到包含两行的表中 - 如果您使用的是SQL Server 2008或更高版本,最简单的方法是使用表值构造函数,例如。

SELECT  t.*
FROM    YourTable AS t
        CROSS JOIN (VALUES (1), (2)) AS cj (Number)

如果您使用的是早期版本,请使用:

SELECT  t.*
FROM    YourTable AS t
        CROSS JOIN (SELECT Number = 1 UNION ALL SELECT 2) AS cj;

这样您就可以复制记录而无需两次读取表格。

enter image description here