てみてください左:今のOracle 11gは、このようなサンプルDB作成する問題への参加
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非常に奇妙です"右のテーブルに属しているので、左の結合で、正しいキーがnullの場合はnullになり、codice2がnullの場合はnullになります。 codice = DまたはEの場合、右側の表は一致しませんが、stato列はNULLではありません。 静的な列 'E' statoを表app2の実数の列statoに置き換えた場合は発生しません。
現在の結果と必要な結果を表示します。 (フォーマットされたテキストをお願いします。) – jarlh
done ..... – user5919369