Sql 如何将列上的数据集连接为空?

Sql 如何将列上的数据集连接为空?,sql,join,db2,Sql,Join,Db2,我有两张桌子,看起来像这样: Table_1: Shop_ID | Offer_ID | Metric_1 --------|----------|--------- AAA | 111 | 1 AAA | 222 | 2 BBB | 111 | 3 BBB | 222 | 4 Table 2: Shop_ID | Offer_ID | Metric_2 --------|----------|--------- AA

我有两张桌子,看起来像这样:

Table_1:

Shop_ID | Offer_ID | Metric_1
--------|----------|---------
AAA     | 111      | 1
AAA     | 222      | 2
BBB     | 111      | 3
BBB     | 222      | 4

Table 2:

Shop_ID | Offer_ID | Metric_2
--------|----------|---------
AAA     | 111      | 1
AAA     | 222      | 2
BBB     | 111      | 3
BBB     | 222      | 4
CCC     | 111      | 5
CCC     | 222      | 6
Shop_ID | Offer_ID | Metric_1 | Metric_2
--------|----------|----------|---------
AAA     | 111      | 1        | 1
AAA     | 222      | 2        | 2
BBB     | 111      | 3        | 3
BBB     | 222      | 4        | 4
CCC     | 111      | NULL     | 5
CCC     | 222      | NULL     | 6
我想将它们合并到一个组合数据集中,如下所示:

Table_1:

Shop_ID | Offer_ID | Metric_1
--------|----------|---------
AAA     | 111      | 1
AAA     | 222      | 2
BBB     | 111      | 3
BBB     | 222      | 4

Table 2:

Shop_ID | Offer_ID | Metric_2
--------|----------|---------
AAA     | 111      | 1
AAA     | 222      | 2
BBB     | 111      | 3
BBB     | 222      | 4
CCC     | 111      | 5
CCC     | 222      | 6
Shop_ID | Offer_ID | Metric_1 | Metric_2
--------|----------|----------|---------
AAA     | 111      | 1        | 1
AAA     | 222      | 2        | 2
BBB     | 111      | 3        | 3
BBB     | 222      | 4        | 4
CCC     | 111      | NULL     | 5
CCC     | 222      | NULL     | 6
请问有人知道怎么做吗?我尝试了下面的代码,但它只是给了我一条错误消息,说不允许将NULL值赋值给notnull列


出现此错误是因为列度量值_1有一个条件。你可以做两件事

更改表_3 Metric_1列以允许空值

ALTER TABLE TABLE_3
     ALTER COLUMN Metric_1 *your_data_type* NULL
使用表达式。这是基本上用其他内容替换空值的地方。在下面的示例中,我使用了-1,但是您可以使用对您最有意义的任何东西

插入表3 选择表2.SHOP\u ID, 表2.1.1报价单, ISNULLMETRIC_1,-1, 度量_2 来自表1 完全外接 表2 表1.SHOP\u ID=表2.SHOP\u ID 表1.OFFER\u ID=表2.OFFER\u ID ;
select无法生成此错误。您必须插入到一个非空列的表中。@GordonLinoff:谢谢您的回复!我编辑了示例代码,以澄清是的,我正在尝试将结果放入表中。该示例经过简化以使其更易于阅读,但在任何情况下,我的原始查询中都没有“is not null”或“null”。它确实作为一个select查询运行,没有错误消息,但它不会生成我需要的结果;结果中缺少店铺ID“CCC”行。你知道怎样才能得到我想要的结果吗?