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”行。你知道怎样才能得到我想要的结果吗?