我有一个表a,其中只有一列记录是随机字母数字字符。那张桌子大概有10行。
我有另一个有10行的表B,我想从表a的一行中取一个值,并将其应用于表B中的一行。
因此,基本上,从表a中取一个值,并将其分配给表B中的一行。最好从表a的第1行取值,然后将其分配到表B的第1列,等等
我正在使用SQL Server。
我们可以从表B中取任何值来分配给表a中的一行。我们不能重复使用表B中的值。
以下是本例中最简单的两个表格:
CREATE TableA([Value]NVARCHAR(50((
CREATE TableB([Value]NVARCHAR(50((
给定以下表格结构:
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;
这假设您在每个表中有相同数量的行,正如您所指出的,或者可以使用";过量";第一个表中的条目未更新。