繁体   English   中英

SQL SERVER为现有表的每一行插入新列值

[英]SQL SERVER Insert New Column Values for every row of existing table

我有一个现有的客户表。 我想根据我们公司提供的所有服务为每个客户添加一个新行。

原样:

Customer - ID
Freddy - 123

成为:

Customer - ID - Service
Freddy - 123 - Serv1
Freddy - 123 - Serv2
Freddy - 123 - Serv3

等...

现在我一直在与下面的工作,但它没有给出期望的输出:

INSERT INTO Customers (Service) 
VALUES ('Serv1'), ('Serv2'), ('Serv3')

您需要某种JOIN ,在这种情况下为CROSS JOIN

SELECT c.Customer, c.Id, v.s
FROM Customers c CROSS JOIN
     (VALUES ('Serv1'), ('Serv2'), ('Serv3')) v(s);

但是,将其插入原始表中没有任何意义。 该表只有两列,但是您似乎想要第三列。

您只有两列,因此请创建第三列。

转到表>>设计>>,然后创建名为“服务”的第三行

现在执行此操作:

UPDATE Customers
SET service='serv1'
WHERE Customer='Freddy '

请记住:WHERE子句指定应更新的记录。 如果省略WHERE子句,所有记录将被更新!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM