我正在尝试根据表 B.Def 填充表 A.OMkt。
我最初的想法是在 A.OMkt = B.Zip 上使用 LEFT JOIN。
但是“黄色”中突出显示的那些总是以空值返回,因为我在表 B 中没有等效项。我将不胜感激。我想避免创建另一个列,并希望仅使用已经存在的列来完成连接。
我正在尝试根据表 B.Def 填充表 A.OMkt。
我最初的想法是在 A.OMkt = B.Zip 上使用 LEFT JOIN。
但是“黄色”中突出显示的那些总是以空值返回,因为我在表 B 中没有等效项。我将不胜感激。我想避免创建另一个列,并希望仅使用已经存在的列来完成连接。
您似乎正在寻找一个简单的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
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) + '%'