如何使用 SQL 复制行并为特定列的每一行进行多次插入?
How to duplicate rows and make multiple inserts for each row for a specific column using SQL?
在 SQL 中有没有办法复制每一行并在每个结果前输入一个常量值,如下所示:
This is what I have:
Name Height
1 John 6.5
2 Ben 7.0
3 Mike 6.6
4 Adam 7.1
我想在数据中的每一行前面添加新行并指定值(例如 1、5、5、5……),如下所示:
Name Height
1 JohnStart 1
2 John 6.5
3 BenStart 5
4 Ben 7.0
5 MikeStart 5
6 Mike 6.6
7 AdamStart 5
8 Adam 7.1
我试过插入功能,但是没用
INSERT INTO mydata (Name, Height)
VALUES ('AdamStart', '5')
您可以使用 SQL UNION 运算符来做同样的事情。此外,(Abs(Checksum(NewId())) % 10) 在内部生成一个 GUI,计算其校验和的绝对值。它将始终生成 0 到 10 之间的值。添加 1 以处理零值情况。
SELECT Name, Height FROM tbl
UNION
SELECT Name + 'Start', (Abs(Checksum(NewId())) % 10) + 1 FROM tbl
在 SQL 中有没有办法复制每一行并在每个结果前输入一个常量值,如下所示:
This is what I have:
Name Height
1 John 6.5
2 Ben 7.0
3 Mike 6.6
4 Adam 7.1
我想在数据中的每一行前面添加新行并指定值(例如 1、5、5、5……),如下所示:
Name Height
1 JohnStart 1
2 John 6.5
3 BenStart 5
4 Ben 7.0
5 MikeStart 5
6 Mike 6.6
7 AdamStart 5
8 Adam 7.1
我试过插入功能,但是没用
INSERT INTO mydata (Name, Height)
VALUES ('AdamStart', '5')
您可以使用 SQL UNION 运算符来做同样的事情。此外,(Abs(Checksum(NewId())) % 10) 在内部生成一个 GUI,计算其校验和的绝对值。它将始终生成 0 到 10 之间的值。添加 1 以处理零值情况。
SELECT Name, Height FROM tbl
UNION
SELECT Name + 'Start', (Abs(Checksum(NewId())) % 10) + 1 FROM tbl