Я пытаюсь написать запрос, который ищет «A» внутри поля, и, если найден, ищет «B» в другом экземпляре того же поля , Каков наилучший способ сделать это?SQL Если найдена «A», найдите «B»
SELECT DISTINCT A.DEPT_NBR, A.JOBTITLE, B.JOBTITLE
FROM MYTABLE A
WHERE ((A.JOBTITLE = 'JR_ACCOUNTANT'
AND NOT EXISTS (SELECT B.* FROM MYTABLE B
WHERE B.JOBTITLE = 'SR_ACCOUNTANT'))
OR (A.JOBTITLE = 'SR_ACCOUNTANT'
AND NOT EXISTS (SELECT B.* FROM MYTABLE B
WHERE B.JOBTITLE = 'JR_ACCOUNTANT'))
OR (A.JOBTITLE = 'JR_MANAGER'
AND NOT EXISTS (SELECT B.* FROM MYTABLE B
WHERE B.JOBTITLE = 'SR_MANAGER'))
OR (A.JOBTITLE = 'SR_MANAGER'
AND NOT EXISTS(SELECT B.* FROM MYTABLE B
WHERE B.JOBTITLE = 'JR_MANAGER')))
Oracle DB, в частности запрос PeopleSoft – glennsnoise
Lookup 'EXISTS'. – Siyual
Укажите примерный запрос, даже тот, который не работает, чтобы проиллюстрировать, что именно вы пытаетесь сделать. Прямо сейчас, не ясно, хотите ли вы фильтр, существует или case case. –