【发布时间】:2015-08-03 17:30:06
【问题描述】:
我想从同一个表中复制记录。如果 parentID 为空,那么我想复制其中的 Parent 和 Child 以及另一个 parentName(我将使用 replace 关键字)。
如果它不为空,那么我想将其复制到同一个父级中,如果该父级中不存在相同的父级。
create table #Table(ID int primary key , Name varchar(10),ParentID int )
insert into #Table
select 1,'Suresh', -1
union
select 2,'Naresh', 1
union
select 3,'John', 1
union
select 4,'Kumar',3
union
Select 5,'Dale John',3
select * from #Table
ID Name ParentID
-------------------
1 Suresh -1
2 Naresh 1
3 John 1
4 Kumar 3
5 Dale John 3
- 如果我选择
ID = 1,那么如果Name not "Suresh"和ParentID not -1.,所有ID子级都应该插入到同一个表中 - 如果我选择
ID = 3,那么ID3 并且如果Name and ParentID not John & 1Child 应该插入到同一个表中
【问题讨论】:
-
Reddy 如何展示一些解决您的问题的努力或更改样本数据和预期输出
-
INSERT INTO tblName select * from tblName where ParentId = @ParentId -
copy是什么意思? -
@ FutbolFan,在我的表中,父子关系存在。我想将数据复制(插入同一个表)到同一个表中。这个过程就像,如果不存在相同的父名,我可以将父级和所有子级复制到同一个表中并重命名。我可以将孩子复制到具有不同名称的同一个父级名称中,并且名称不应仅存在于该父级中。
-
实际上表格应该是插入语句,没有什么可以阻止您在问题中添加文本。另一个简单的解决方案是转到sqlfiddle.com。您可以在那里创建表格和示例数据。
标签: sql-server sql-server-2008