1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| CREATE TABLE T_PERSONNE
(codeF INT,
civilite CHAR(2),
nom VARCHAR(10),
prenom VARCHAR(10),
adresse VARCHAR(16))
INSERT INTO T_PERSONNE VALUES (120, 'M.', 'Dupont', 'richard', 'aaaaaaaaaaa')
INSERT INTO T_PERSONNE VALUES (133, 'M.', 'Durant', 'philippe', 'bbbbbbbbbbb')
INSERT INTO T_PERSONNE VALUES (133, 'MM', 'Durant', 'martine', 'bbbbbbbbbbb')
INSERT INTO T_PERSONNE VALUES (140, 'M.', 'DD', 'patrick', 'ccccccccccc')
INSERT INTO T_PERSONNE VALUES (140, 'ML', 'DD', 'alice', 'ccccccccccc')
INSERT INTO T_PERSONNE VALUES (145, 'MM', 'TT', 'aa', 'ddddddddddd')
SELECT T1.codeF, T1.nom AS nom1, T1.prenom AS prenom1,
T2.nom AS nom2, T2.prenom AS prenom2,
T1.adresse
FROM T_PERSONNE T1
LEFT OUTER JOIN T_PERSONNE T2
ON T1.codeF = T2.codeF
AND T1.adresse = T2.adresse
AND T1.civilite <> T2.civilite
AND T1.prenom <> T2.prenom
codeF nom1 prenom1 nom2 prenom2 adresse
----------- ---------- ---------- ---------- ---------- ----------------
120 Dupont richard NULL NULL aaaaaaaaaaa
133 Durant philippe Durant martine bbbbbbbbbbb
133 Durant martine Durant philippe bbbbbbbbbbb
140 DD patrick DD alice ccccccccccc
140 DD alice DD patrick ccccccccccc
145 TT aa NULL NULL ddddddddddd |
Partager