Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL克隆/复制同一表中具有条件的记录_Sql_Sql Server - Fatal编程技术网

SQL克隆/复制同一表中具有条件的记录

SQL克隆/复制同一表中具有条件的记录,sql,sql-server,Sql,Sql Server,我有一个表,我想在同一个表中复制/克隆记录。然而,我想这样做有一个条件。条件是我有一个名为recordcount的列,其中包含数值。例如,行1的值可以是recordcount,比如7,那么我希望我的行1被复制7次。第2行的值可以是9,那么我希望第2行被复制9次。 感谢您的帮助。谢谢你你能做什么(我很确定这不是一个最佳实践) 是用来保存一个只包含数字的表,该表的行数与数值对应 将其与表连接起来,并仅投影表 例如: create table nums(x int); insert into nums

我有一个表,我想在同一个表中复制/克隆记录。然而,我想这样做有一个条件。条件是我有一个名为recordcount的列,其中包含数值。例如,行1的值可以是recordcount,比如7,那么我希望我的行1被复制7次。第2行的值可以是9,那么我希望第2行被复制9次。 感谢您的帮助。谢谢你

你能做什么(我很确定这不是一个最佳实践)

是用来保存一个只包含数字的表,该表的行数与数值对应

将其与表连接起来,并仅投影表

例如:

create table nums(x int);
insert into nums select 1;
insert into nums select 2;
insert into nums select 2;
insert into nums select 3;
insert into nums select 3;
insert into nums select 3;

create table t (txt varchar(10) , recordcount int);
insert into t select 'A',1;
insert into t select 'B',2;
insert into t select 'C',3;


select t.*
from t 
    inner join nums
        on t.recordcount = nums.x
order by 1
;
将计划:

"A",1
"B",2
"B",2
"C",3
"C",3
"C",3

欢迎来到堆栈溢出。当问问题时,正确的标签很重要。您在这里标记了MySQL和SQL Server,这是两个完全不同的RDBMS。我已经删除了这些标签,因为不清楚您使用的是哪一个(因此不会引起其他志愿者的混淆)。但是,重要的是你要回答你的问题并添加正确的标签,并且(最重要的)只添加正确的标签。谢谢。给我们你的桌子结构你好,欢迎光临。我建议您不要在表中真的需要一堆重复的行。这破坏了关系数据的概念。你还需要决定是使用mysql还是sql server,但是如果你真的认为你想要一堆复制品,那么方法就是使用一个计数表或数字表。具体实现将取决于您的DBMS。这是一篇很棒的文章,从SQLServer的角度讨论了这个概念。谢谢你,拉鲁。我正在使用sql server。我这样做是为了进行一些统计分析,我需要复制这些分析。就表结构而言,我现在的表中有30列。我真的不需要在同一个表中进行复制,如果这样做很容易的话。我可以创建一个新的表格。在你的帖子中编辑这个表格,并将其格式化,这样就可以清楚地看到,我(可能还有任何其他想要帮助的人)无法理解ITlet,请保持示例简单。假设我有3列。我的表中的ID、记录计数和年龄。我想用复制的行创建一个新表。通过recordcount为每个ID创建一个。因此,如果ID=1,则recordcount=7。然后我想在我的新表中复制该记录7次。@VenkatR听起来就像我回答的代码所做的那样。。。您只需在选择按钮之前添加一个“插入到”即可。请查看此处