我有一個表 A,其中只有 1 列的記錄是隨機字母數字字符。該表有 10 行。
我還有另一個有 10 行的表 B,我想從表 A 的一行中獲取一個值并將其應用于表 B 中的一行。
因此,基本上,從表 A 中獲取一個值并將其分配給表 B 中的一行。最好從表 A 的第 1 行中獲取值并將其分配給表 B 的第 1 行,等等...
我正在使用 SQL Server。
我們可以將表 B 中的任何值分配給表 A 中的一行。我們只是不能重用表 B 中的值。
以下是本示例最簡單形式的 2 個表:
創建表A([值] NVARCHAR(50))
創建表 B([值] NVARCHAR(50))
uj5u.com熱心網友回復:
給定以下表結構:
CREATE TABLE #tempA (stringEntry NVARCHAR(50));
INSERT INTO #tempA (stringEntry) VALUES ('abcd'), ('efgh'), ('ijkl');
CREATE TABLE #tempB (stringEntry NVARCHAR(50));
INSERT INTO #tempB (stringEntry) VALUES ('mnop'), ('qrst'), ('uvwx');
您可以執行以下操作:
SELECT
ROW_NUMBER() OVER(ORDER BY #tempA.stringEntry) AS RowNumber,
#tempA.stringEntry AS entryA
INTO #tempA2
FROM #tempA;
SELECT
ROW_NUMBER() OVER(ORDER BY #tempB.stringEntry) AS RowNumber,
#tempB.stringEntry AS entryB
INTO #tempB2
FROM #tempB;
UPDATE #tempA
SET #tempA.stringEntry = #tempB2.entryB
FROM #tempA
INNER JOIN #tempA2 ON #tempA.stringEntry = #tempA2.entryA
INNER JOIN #tempB2 ON #tempB2.RowNumber = #tempA2.RowNumber;
這假設您在每個表中具有相同數量的行,如您所指出的,或者您可以不更新第一個表中的“多余”條目。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/410530.html
標籤:
