尝试创建一个示例数据库是这样的:的Oracle 11g左连接问题
CREATE TABLE "APP"
( "CODICE" VARCHAR2(20 BYTE)
);
Insert into APP (CODICE) values ('A');
Insert into APP (CODICE) values ('B');
Insert into APP (CODICE) values ('C');
Insert into APP (CODICE) values ('D');
Insert into APP (CODICE) values ('E');
CREATE TABLE "APP2"
( "CODICE" CHAR(1 BYTE),
"STATO" VARCHAR2(20 BYTE)
);
Insert into APP2 (CODICE,STATO) values ('A','E');
Insert into APP2 (CODICE,STATO) values ('B','E');
Insert into APP2 (CODICE,STATO) values ('C','E');
现在,试着左加入这样的:
select app.codice codice1,
case
when app.codice in ('A','B','C') then 'OK'
when app.codice in ('D','E') then 'KO'
end azione,
tt.codice codice2,
tt.stato
from app left join (select app2."CODICE", 'E' stato
from app2) tt on app.codice=tt.codice
结果很奇怪,列“stato “属于右表,因此,如果右键为空,则在左连接中应该为空,因此如果codice2为null。 对于codice = D或E,右表不匹配,但是stato列不为空。 如果更换静态列“E”与表中的实际列stato stato APP 2
向我们展示当前结果以及您想要的结果。 (请格式化文本。) – jarlh
完成下面..... – user5919369