1

我目前有两张桌子,如下图所示。

第一个表称为bottle

在此处输入图像描述

第二个表称为cases

在此处输入图像描述

我正在尝试将 case_id = 0 的值插入到瓶表中 case 表中(即 case_id=100、100、103、103 等)。它们是两个单独的表,我试图在不创造NULL价值的情况下加入它们。

如果我需要使用插入、加入或更新,请告诉我。我会手动执行,但是这些数据点来自 PLC,并且不仅仅是下面看到的所有数据点。

4

1 回答 1

0

没有明确的连接列可以用来执行UPDATE您想要的操作。但是我们可以通过使用特定顺序连接每个表中的行号值来创建一个。在下面的查询中,我使用 排序表中的行号,bottle使用 排序表中的bottle_id行号。casescase_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
于 2016-11-29T04:38:34.690 回答