SQL> select * from tt1; ID NAME SCORE1
---------- -------------------- ------
1 aaa 100SQL> select * from tt2; ID NAME SCORE2
---------- -------------------- ------
1 aaa 99
1 aaa 90SQL> select A.ID,A.NAME,A.SCORE1,B.SCORE2
2 from tt1 A , tt2 B
3 where A.ID = B.ID and A.NAME = B.NAME
4 / ID NAME SCORE1 SCORE2
---------- -------------------- ------ ------
1 aaa 100 99
1 aaa 100 90
---------- -------------------- ------
1 aaa 100SQL> select * from tt2; ID NAME SCORE2
---------- -------------------- ------
1 aaa 99
1 aaa 90SQL> select A.ID,A.NAME,A.SCORE1,B.SCORE2
2 from tt1 A , tt2 B
3 where A.ID = B.ID and A.NAME = B.NAME
4 / ID NAME SCORE1 SCORE2
---------- -------------------- ------ ------
1 aaa 100 99
1 aaa 100 90
---------- -------------------- ------
1 aaa GGG 100SQL> select * from tt2; ID NAME MODEL SCORE2
---------- -------------------- ------
1 aaa GGG 99
1 aaa FFF 90SQL> select A.ID,A.NAME,A.SCORE1,B.SCORE2
2 from tt1 A , tt2 B
3 where A.ID = B.ID and A.NAME = B.NAME
4 / ID NAME MODEL SCORE1 SCORE2
---------- -------------------- ------ ------
1 aaa GGG 100 99
1 aaa FFF 100 90
ID NAME MODEL SCORE1 SCORE2
---------- -------------------- ------ ------
1 aaa GGG 100 99
1 aaa FFF 0 90
2 from tt1 A Right Join tt2 B
3 where A.ID = B.ID and A.NAME = B.NAME
4 /
2 from tt1 A Right Join tt2 B
3 On A.ID = B.ID and A.NAME = B.NAME
4 /
2 from tt1 A Right Join tt2 B
3 On A.ID = B.ID and A.NAME = B.NAME
4 /======================================
不行,我是在Oracle中執行,IsNULL改成了NVL
from tt2 A , tt1 B
where A.ID = B.ID(+) and A.NAME = B.NAME(+) AND A.MODEL=B.MODEL(+)
DECODE(A.MODEL, B.MODEL, A.SCORE1, 0) AS SCORE1,
B.SCORE2
from tt1 A , tt2 B
where A.ID = B.ID and A.NAME = B.NAME
/