SQL 更新(逐行复制)
SQL UPDATE (copy from row to row)
我想尝试将 Table 中一条记录的值复制到同一 table 同一列中的另一条记录。
UPDATE
[PDF]
SET
[PDF].[description] = [MISC].[description]
FROM (
SELECT
[PDF].[TPYE]
,[ID]
,[PDF].[description]
FROM [DB1] AS [PDF]
INNER JOIN (
SELECT
[TYPE]
[description]
[ID]
FROM [DB1]
WHERE [TYPE] = 'MISC'
) AS [MISC] ON [PDF].[ID] = [MISC].[ID]
WHERE
[PDF].[TPYE] = 'PDF'
为了进一步说明,我添加了屏幕截图。enter image description here
Table 包含几千行,我想将说明从一行复制到另一行 - 取决于 NUMBER 和 TYPE。
以这个为例。你很接近。
DECLARE @DB1 AS TABLE ( ID INT NOT NULL
, TYPE NVARCHAR(4) NOT NULL
, Description NVARCHAR(255) NULL )
INSERT INTO @DB1 ( ID, TYPE, Description )
VALUES ( 1, N'PDF', N'' )
, ( 1, N'MISC', N'Description 1' )
, ( 2, N'PDF', N'' )
, ( 2, N'MISC', N'Description 2' )
SELECT *
FROM @DB1
WHERE TYPE = 'PDF'
UPDATE PDF
SET PDF.Description = MISC.Description
FROM @DB1 PDF
JOIN @DB1 MISC ON MISC.ID = PDF.ID
AND MISC.TYPE = 'MISC'
WHERE PDF.TYPE = 'PDF'
SELECT *
FROM @DB1
WHERE TYPE = 'PDF'
请注意,如果您可以包含一些示例数据供其他读者使用,将来会有所帮助。我创建 table 结构并用一些测试数据填充它的方式是如何完成此操作的基本示例。
如果您发现某个答案有用且正确,请不要忘记将其标记为有用并点赞。这将帮助其他用户了解什么有效。这适用于整个站点,而不仅仅是您自己的问题。
我想尝试将 Table 中一条记录的值复制到同一 table 同一列中的另一条记录。
UPDATE
[PDF]
SET
[PDF].[description] = [MISC].[description]
FROM (
SELECT
[PDF].[TPYE]
,[ID]
,[PDF].[description]
FROM [DB1] AS [PDF]
INNER JOIN (
SELECT
[TYPE]
[description]
[ID]
FROM [DB1]
WHERE [TYPE] = 'MISC'
) AS [MISC] ON [PDF].[ID] = [MISC].[ID]
WHERE
[PDF].[TPYE] = 'PDF'
为了进一步说明,我添加了屏幕截图。enter image description here
Table 包含几千行,我想将说明从一行复制到另一行 - 取决于 NUMBER 和 TYPE。
以这个为例。你很接近。
DECLARE @DB1 AS TABLE ( ID INT NOT NULL
, TYPE NVARCHAR(4) NOT NULL
, Description NVARCHAR(255) NULL )
INSERT INTO @DB1 ( ID, TYPE, Description )
VALUES ( 1, N'PDF', N'' )
, ( 1, N'MISC', N'Description 1' )
, ( 2, N'PDF', N'' )
, ( 2, N'MISC', N'Description 2' )
SELECT *
FROM @DB1
WHERE TYPE = 'PDF'
UPDATE PDF
SET PDF.Description = MISC.Description
FROM @DB1 PDF
JOIN @DB1 MISC ON MISC.ID = PDF.ID
AND MISC.TYPE = 'MISC'
WHERE PDF.TYPE = 'PDF'
SELECT *
FROM @DB1
WHERE TYPE = 'PDF'
请注意,如果您可以包含一些示例数据供其他读者使用,将来会有所帮助。我创建 table 结构并用一些测试数据填充它的方式是如何完成此操作的基本示例。
如果您发现某个答案有用且正确,请不要忘记将其标记为有用并点赞。这将帮助其他用户了解什么有效。这适用于整个站点,而不仅仅是您自己的问题。