我有一个表(Table1),其中一些列由数据和一个空列填充。还有另一个表(表2),其中一列包含数据。只有行号相等,没有外键或任何指向该表的链接。我希望Table1的更新空列由Table2列中的数据逐行(table1中的row1到table1中的row1。是否有任何方法可以执行但不使用export to file?可以使用while循环吗?
答案 0 :(得分:0)
如果我理解正确,您可以使用row_number()
:
with toupdate as (
select t1.*, row_number() over (order by (select NULL)) as seqnum
from table1 t1
)
update toupdate
set col = t2.col
from (select t2.*, row_number() over (order by (select NULL)) as seqnum
from table2 t2
) t2
where t2.seqnum = t1.seqnum;
答案 1 :(得分:0)
添加这样的rownumbers并加入它们:
WITH CTE_TableA AS(
SELECT ColA, ROW_NUMBER() OVER (PARTITION BY ColA ORDER BY ColA) AS RowA
FROM TableA)
,CTE_TableB AS
SELECT ColB, ROW_NUMBER() OVER (PARTITION BY ColB ORDER BY ColB) AS RowB
FROM TableB
SELECT * FROM CTE_TableA AS A
INNER JOIN CTE_TableB AS B ON A.RowA = B.RowB