我有一个有两列的表
如果类别名称相同,则类别ID将相同
CatID CatName
1 Cat1
1 Cat1
1 Cat1
2 Cat2
2 Cat2
3 Cat3
3 Cat3
3 Cat3
我想将上面的表行复制到同一个表中,以获得如下所示的结果
CatID CatName
1 Cat1
1 Cat1
1 Cat1
2 Cat2
2 Cat2
3 Cat3
3 Cat3
3 Cat3
4 Cat1
4 Cat1
4 Cat1
5 Cat2
5 Cat2
6 Cat3
6 Cat3
6 Cat3
CatID 4是CATID的前+ 1
我知道,我可以使用以下查询:
insert into [table1]
select (SELECT MAX([CatID]) from [table1]) +
ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as [CatID], CatName
from [table1]
给出如下所示的结果,我不想要。
CatID CatName
4 Cat1
5 Cat1
6 Cat1
7 Cat2
8 Cat2
9 Cat3
10 Cat3
11 Cat3
这里,CatID正在递增,我需要根据类别增加catid。
答案 0 :(得分:1)
你复杂了你的select语句。试试这个:
INSERT INTO Table1
SELECT CatId + (SELECT MAX(CatId) FROM Table1), CatName
FROM Table1
注意:我同意Amit的评论:这是一个糟糕的设计 我想不出任何应该在任何表中插入相同行的情况。