根据另一行中的值用一个新值创建新行

问题描述 投票:0回答:2

我有什么:

价值 物业 主持人
一个 1 戴夫
两个 2 戴夫
三个 3 戴夫

我想达到的目标:

价值 物业 主持人
一个 1 戴夫
两个 2 戴夫
三个 3 戴夫
一个 1 皮特
两个 2 皮特
三个 3 皮特

所以我正在尝试根据以 Dave 作为主持人的任何行来创建新行。这些行与 Dave 行相同,只是主持人是 Pete。保留 Dave 行。添加了 Pete 行。

sql-server conditional-statements sql-insert sql-server-2019-express
2个回答
2
投票

只需使用

VALUES
表结构,数据中同时包含 Dave 和 John:

SELECT YT.Value,
       YT.Property,
       V.Host
FROM dbo.YourTable YT
     CROSS APPLY (VALUES('Dave'),
                        ('Pete'))V(Host)
WHERE YT.Host = 'Dave';

0
投票

一个简单的

INSERT INTO
结合
SELECT
应该可以解决问题。

INSERT INTO
  dbo.tablename (VALUE, PROPERTY, HOST)
SELECT
  VALUE, PROPERTY, 'Pete'
FROM
  dbo.tablename
WHERE
  HOST = 'Dave'
© www.soinside.com 2019 - 2024. All rights reserved.