我目前有两张桌子,如下图所示。
第一个表名为bottle
:
第二个表名为cases
:
我正在尝试插入瓶子表中case_id = 0,在案例表中看到的值(即case_id = 100,100,103,103等......)。它们是两个独立的表,我试图加入它们而不创建NULL
值。
如果我需要使用插入,加入或更新,请告诉我。我会手动执行此操作,但这些数据点将从PLC生效,并且不仅仅是下面显示的所有数据点。
答案 0 :(得分:0)
没有明确的连接列可用于执行所需的UPDATE
。但是我们可以通过使用特定顺序连接每个表的行号值来创建一个。在下面的查询中,我使用bottle
在bottle_id
表中订购行号,使用cases
在case_id
表中订购行号。
UPDATE t1
SET t1.case_id = t2.case_id
FROM
(
SELECT t.*, ROW_NUMBER() OVER (ORDER BY bottle_id) rowId
FROM bottle t
) t1
INNER JOIN
(
SELECT t.*, ROW_NUMBER() OVER (ORDER BY case_id) rowId
cases t
) t2
ON t1.rowId = t2.rowId
这应该使bottle
中的输出看起来像这样(省略了一些列):
bottle_id case_id
1 100
2 100
3 103
4 103
5 104
6 104
7 105
8 105