Vidím dve možnosti. Najviac priamy preklad sa zdá byť:
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%'
ale použitie RIGHT OUTER JOIN
môžu byť neznáme. Ak chcete prepnúť na známejšie LEFT OUTER JOIN
potrebujeme na zadnej pozície v tabuľkách dotaz a zmeniť, ako podmienky sú prezentované:
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%'
Stále som aliasy rovnaké, takže môžete vidieť, ako sa pohyboval v dotaze. V oboch otázky m1
je primárnej tabuľke, to je, je to ten, ktorý musí poskytnúť údaje, pričom m2
je sekundárne alebo "voliteľné" tabuľka - to môže alebo nemusí mať k dispozícii údaje, ktoré zodpovedá zš.
Osobne som radšej sa pripojí cez subqueries, ako som si ich ľahšie pochopiť, ale YMMV.