-2

我正在尝试根据表 B.Def 填充表 A.OMkt。

我最初的想法是在 A.OMkt = B.Zip 上使用 LEFT JOIN。

但是“黄色”中突出显示的那些总是以空值返回,因为我在表 B 中没有等效项。我将不胜感激。我想避免创建另一个列,并希望仅使用已经存在的列来完成连接。

在此处输入图像描述

4

2 回答 2

0

您似乎正在寻找一个简单的LEFT JOIN

SELECT ta.O3Zip, COALESCE(ta.OMkt, tb.Def) OMKt
FROM tableA ta
LEFT JOIN tableB tb ON ta.O3Zip = tb.zip

此查询将在 中查找值,将 column与 columntableB匹配。当is时,它将被 in 的值替换(如果可用)。tableA.O3ZiptableB.zipOMktNULLDeftableB

于 2019-09-16T17:14:42.380 回答
0

Table A LEFT JOIN Table B ON A.O3Zip like B.Zip + '%' 两者都给我一个 NULL 值,其中没有匹配项(即在 A2、B2、V0 的情况下)

如果您在 JOIN 条件中使用此 LIKE 获得 NULL,那么一定是因为您在B.Zip列中有空格字符。

试试这样:

Table A LEFT JOIN Table B ON A.O3Zip LIKE RTRIM(B.Zip) + '%'
于 2019-09-16T17:57:09.620 回答