Michał Herman Asked: 2015-07-10 05:27:50 +0800 CST2015-07-10 05:27:50 +0800 CST 2015-07-10 05:27:50 +0800 CST 函数内的 Oracle (+) 表示法 772 如果我们使用(+)符号,我们可以有外部连接。例如: select * from tab_a, tab_b where tab_a.num = tab_b.num(+) 是外连接。 如果我们在列周围使用函数,例如: select * from tab_a, tab_b where round(tab_a.num, 2) = round(tab_b.num(+), 2) 还是outer join?还是成为内连接? oracle join 1 个回答 Voted Best Answer Jack Douglas 2015-07-11T00:25:27+08:002015-07-11T00:25:27+08:00 还是outer join?还是成为内连接? 它仍然是一个外部连接: SQL小提琴 Oracle 11g R2 架构设置: create table tab_a(num integer); create table tab_b(num integer); insert into tab_a(num) values(1); insert into tab_a(num) values(2); insert into tab_b(num) values(2); insert into tab_b(num) values(3); 查询 1: select * from tab_a, tab_b where tab_a.num = tab_b.num(+) 结果: | NUM | NUM | |-----|--------| | 2 | 2 | | 1 | (null) | 查询 2: select * from tab_a, tab_b where round(tab_a.num, 2) = round(tab_b.num(+), 2) 结果: | NUM | NUM | |-----|--------| | 2 | 2 | | 1 | (null) |
它仍然是一个外部连接:
SQL小提琴
Oracle 11g R2 架构设置:
查询 1:
结果:
查询 2:
结果: