Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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 多次插入行的副本,但更改了1列_Sql_Sql Server - Fatal编程技术网

Sql 多次插入行的副本,但更改了1列

Sql 多次插入行的副本,但更改了1列,sql,sql-server,Sql,Sql Server,我有桌子 +---------------------+ | ID | Code | Amount | +---------------------+ | 1 | 101 | 1.2 | | 2 | 101 | 1.3 | | 3 | 101 | 1.3 | | 4 | 101 | 1.4 | | 5 | 101 | 1.2 | | 6 | 101 | 1.5 | | 7 | 101 | 1.4 | | 8

我有桌子

+---------------------+
| ID | Code | Amount  |
+---------------------+
| 1  | 101  | 1.2     | 
| 2  | 101  | 1.3     |
| 3  | 101  | 1.3     |
| 4  | 101  | 1.4     |
| 5  | 101  | 1.2     |
| 6  | 101  | 1.5     |
| 7  | 101  | 1.4     |
| 8  | 101  | 1.3     |
| 9  | 101  | 1.1     |
| 10 | 101  | 1.0     |
+---------------------+
我试图复制每一行的唯一ID大约20次,并改变

所以我的输出应该是这样的

+---------------------+
| ID | Code | Amount -|
+---------------------+
| 1  | 101  | 1.2     |
| 1  | 102  | 1.2     | 
| 1  | 103  | 1.2     | 
| 1  | 104  | 1.2     |  
| 1  | 105  | 1.2     |
| 1  | 106  | 1.2     |
| 1  | 107  | 1.2     |
| 1  | 108  | 1.2     |
| 1  | 109  | 1.2     |
| 1  | 110  | 1.2     |
| 1  | 115  | 1.2     |
| 1  | 118  | 1.2     |
| 1  | 121  | 1.2     |
| 1  | 119  | 1.2     | 
| 2  | 101  | 1.3     | 
| 2  | 102  | 1.3     | 
| 2  | 103  | 1.3     | 
| 2  | 104  | 1.3     | 
+---------------------+
等等。每个ID的代码都是相同的。它们的顺序与上面的示例表不同,因此我需要在某个地方对它们进行硬编码。有20多个代码,我需要为每个ID添加。金额将是相同的。ID将是相同的。但是代码总是不同的

我需要更新此表以反映这一点


我做这件事有困难。我可以复制一次行。然后更改代码。但是我只能为第一个ID做这些,我不能再做了。非常感谢你的帮助


谢谢,

用附加代码创建一个简单的单列表

CREATE TABLE AdditionalCodes (Code int)

INSERT INTO AdditionalCodes VALUES (102), (103), (104), (105)
现在您所要做的就是将此表与原始表联接,并插入结果

INSERT INTO MyTable (ID, Code, Amount)
SELECT t.ID, c.Code, t.Amount
FROM MyTable t, AdditionalCodes c

您可以使用CTE或子查询来定义代码。下面是一个使用
VALUES()
的方法:


“我做这件事有困难。”-有错误吗?谢谢,这件事做得很好。我已经在一张表格中找到了我需要的代码。只是我今天没能正确地理解这部分。
select t.id, c.code, t.amount
from thetable t cross join
     (values(101), (102), (103), . . . ) codes(code);