Vidím několik možností. Nejvíce přímý překlad se zdá být:
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žití RIGHT OUTER JOIN
může být neznámé. Přejít na více obeznámeni LEFT OUTER JOIN
musíme zvrátit postavení tabulek v dotazu a jak změnit podmínky jsou uvedeny:
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%'
Nechal jsem si přezdívky stejné, takže můžete vidět, jak se pohyboval kolem v dotazu. V obou dotazy m1
je primární tabulky, to je, to je ten, který musí poskytnout data, zatímco m2
je sekundární, nebo "volitelné" stůl - to může nebo nemusí mít údaje, které odpovídá primární.
Osobně dávám přednost připojí přes poddotazy, jak jsem je najít jednodušší to pochopit, ale YMMV.