我可以看到几个选项。 最直接的翻译似乎是:
SELECT CASE
WHEN m2.MATERIAL IS NOT NULL THEN 'Found'
ELSE 'Not Found'
END AS IZZIT_THERE
FROM SCHEMA.MATERIAL_TABLE m2
RIGHT OUTER JOIN SCHEMA.MATERIAL_TABLE m1
ON m1.MATERIAL = m2.MATERIAL
WHERE m1.OLD_MATERIAL LIKE '%55AD%'
但使用 RIGHT OUTER JOIN
可能不熟悉。 切换到更多的熟悉 LEFT OUTER JOIN
我们需要扭转的位置表的查询,并改变条件如何被介绍:
SELECT CASE
WHEN m1.MATERIAL IS NOT NULL THEN 'Found'
ELSE 'Not Found'
END AS IZZIT_THERE
FROM SCHEMA.MATERIAL_TABLE m1
LEFT OUTER JOIN SCHEMA.MATERIAL_TABLE m2
ON m2.MATERIAL = m1.MATERIAL
WHERE m1.OLD_MATERIAL LIKE '%55AD%'
我不停的别名相同的,所以你可以看看他们如何到处移动的查询。 在这两种查询 m1
是主要的表格,也就是说,它是一个 必须 提供数据,同时 m2
是的次级或"任选的"表-它可能有或可能没有数据与主要的。
就个人而言,我愿意加入通过查询因为我找到他们更容易理解,但情况因人而异。