Table A Table B
ID Name ID Name Last_Name
1 John 1 John Depp
2 Henry 2 David Henry
3 Ken
Я стараюсь, чтобы выбрать имя в заявлении с этим условием:Выберите заявление с внутренним соединением
- Если
NAME
вTableA
состояния карты сNAME
вTableB
, затем выберитеLast_Name
- Если
NAME
являетсяTableA
равноLAST_NAME
вTableB
, затем выберитеNAME
изTableA
- Если
NAME
вTableA
в не в состоянии отобразить сTableB
«sNAME
илиLAST_NAME
, затем выберитеNAME
изTableA
.
метод я использовал:
SELECT * FROM
(SELECT A.ID NO, LAST_NAME REALNAME
FROM TABLEA A
INNER JOIN TABLEB B
ON A.NAME = B.NAME
UNION ALL
SELECT A.ID NO, A.NAME REALNAME
FROM TABLEA A
WHERE EXISTS (SELECT 1 FROM TABLEB B WHERE A.NAME = B.LAST_NAME)
UNION ALL
SELECT A.ID NO, A.NAME REALNAME
FROM TABLEA A
WHERE NOT EXISTS (SELECT 1 FROM TABLEB B WHERE A.NAME = B.NAME OR A.NAME = B.LAST_NAME)
)AS T
ВОПРОС: Это больше упростить запрос, я могу использовать, чтобы достичь условий?
Являются ли идентификаторы между двумя надежными родственниками? –