簡體   English   中英

如何將一個表中的值插入到另一個表中而沒有用於內部聯接的值?

[英]How do I insert values from one table into another without a value to inner join them?

表A具有單個字段。 表B有許多字段。

我想將每個值從表A復制到表B的一行,但是我沒有將兩個表連接在一起的值。

只要表A中的每個值在表B中僅出現一次,B中的每個值都進入B中的哪一行都沒有關系。

我不想使用循環。

您可以為兩個表中的每個表分配一個行號,然后進行更新聯接:

WITH cte1 AS (
    SELECT col, ROW_NUMBER() OVER (ORDER BY col) rn
    FROM TableA
),
WITH cte2 AS (
    SELECT *,
           ROW_NUMBER() OVER (ORDER BY some_col) rn
    FROM TableB
)
UPDATE t2
SET col = t1.col
FROM cte2 t2
INNER JOIN cte1 t1
    ON t1.rn = t2.rn

此解決方案進行了幾個假設,包括TableB已經具有用於來自第一個TableA表的單個列的數據的目標列col ,並且兩個表中的類型均匹配。 它還假設TableB行比TableA以適合TableB的數據。 否則,數據將丟失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM