lojreorder.out
来自「derby database source code.good for you.」· OUT 代码 · 共 790 行 · 第 1/5 页
OUT
790 行
ij> -- This test LOJ reordering.-- Many testcases are derived from DB2 UDB FVT testcases.-- Cliff Leung. 10/2002CREATE TABLE T (A INT NOT NULL, B DECIMAL(10,3) NOT NULL, C VARCHAR(5) NOT NULL);0 rows inserted/updated/deletedij> INSERT INTO T VALUES (1, 1.0, '1'), (2, 2.0, '2'), (3, 3.0, '3');3 rows inserted/updated/deletedij> CREATE TABLE S (D INT NOT NULL, E DECIMAL(10,3) NOT NULL, F VARCHAR(5) NOT NULL);0 rows inserted/updated/deletedij> INSERT INTO S VALUES (2, 2.0, '2'), (3, 3.0, '3'), (4, 4.0, '4');3 rows inserted/updated/deletedij> CREATE TABLE R (G INT NOT NULL, H DECIMAL(10,3) NOT NULL, I VARCHAR(5) NOT NULL);0 rows inserted/updated/deletedij> INSERT INTO R VALUES (3, 3.0, '3'), (4, 4.0, '4'), (5, 5.0, '5');3 rows inserted/updated/deletedij> CREATE TABLE TT (J INT NOT NULL, K DECIMAL(10,3) NOT NULL, L VARCHAR(5) NOT NULL);0 rows inserted/updated/deletedij> INSERT INTO TT VALUES (2, 2.0, '2'), (3, 3.0, '3'), (4, 4.0, '4');3 rows inserted/updated/deletedij> select * from t left outer join s on (b = e);A |B |C |D |E |F ---------------------------------------------------------------1 |1.000 |1 |NULL |NULL |NULL 2 |2.000 |2 |2 |2.000 |2 3 |3.000 |3 |3 |3.000 |3 ij> select a, e, f, a+e as "A+E" from t left outer join s on (b = e);A |E |F |A+E -------------------------------------------------1 |NULL |NULL |NULL 2 |2.000 |2 |4.000 3 |3.000 |3 |6.000 ij> select * from t right outer join s on (b = e);A |B |C |D |E |F ---------------------------------------------------------------2 |2.000 |2 |2 |2.000 |2 3 |3.000 |3 |3 |3.000 |3 NULL |NULL |NULL |4 |4.000 |4 ij> select a, e, f, a+e as "A+E" from t right outer join s on (b = e);A |E |F |A+E -------------------------------------------------2 |2.000 |2 |4.000 3 |3.000 |3 |6.000 NULL |4.000 |4 |NULL ij> select a, e, f, a+e as "A+E" from t left outer join s on (b = e) where d > 0;A |E |F |A+E -------------------------------------------------2 |2.000 |2 |4.000 3 |3.000 |3 |6.000 ij> select a, e, f, a+e as "A+E" from t right outer join s on (b = e) where d > 0;A |E |F |A+E -------------------------------------------------2 |2.000 |2 |4.000 3 |3.000 |3 |6.000 NULL |4.000 |4 |NULL ij> -- LOJ and LOJselect a, e, f, a+e as "A+E", g from (t left outer join s on (b = e)) left outer join r on (f = i);A |E |F |A+E |G -------------------------------------------------------------1 |NULL |NULL |NULL |NULL 2 |2.000 |2 |4.000 |NULL 3 |3.000 |3 |6.000 |3 ij> select a, e, f, a+e as "A+E", g from (t left outer join s on (b = e)) left outer join r on (f = i) where a>1;A |E |F |A+E |G -------------------------------------------------------------2 |2.000 |2 |4.000 |NULL 3 |3.000 |3 |6.000 |3 ij> select a, d, e, a+e as "A+E", g from (t left outer join s on (b = e)) left outer join r on (f = i) where d>1;A |D |E |A+E |G -------------------------------------------------------------------2 |2 |2.000 |4.000 |NULL 3 |3 |3.000 |6.000 |3 ij> select a, d, e, a+e as "A+E", g from (t left outer join s on (b = e)) left outer join r on (f = i) where h>1;A |D |E |A+E |G -------------------------------------------------------------------3 |3 |3.000 |6.000 |3 ij> -- LOJ and ROJselect a, e, f, a+e as "A+E", g from (t left outer join s on (b = e)) right outer join r on (f = i);A |E |F |A+E |G -------------------------------------------------------------3 |3.000 |3 |6.000 |3 NULL |NULL |NULL |NULL |4 NULL |NULL |NULL |NULL |5 ij> select a, e, f, a+e as "A+E", g from (t left outer join s on (b = e)) right outer join r on (f = i) where a>1;A |E |F |A+E |G -------------------------------------------------------------3 |3.000 |3 |6.000 |3 ij> select a, e, f, a+e as "A+E", g from (t left outer join s on (b = e)) right outer join r on (f = i) where d>1;A |E |F |A+E |G -------------------------------------------------------------3 |3.000 |3 |6.000 |3 ij> select a, e, f, a+e as "A+E", g from (t left outer join s on (b = e)) right outer join r on (f = i) where h>1;A |E |F |A+E |G -------------------------------------------------------------3 |3.000 |3 |6.000 |3 NULL |NULL |NULL |NULL |4 NULL |NULL |NULL |NULL |5 ij> -- ROJ and ROJselect a, e, f, a+e as "A+E", g from (t right outer join s on (b = e)) right outer join r on (f = i);A |E |F |A+E |G -------------------------------------------------------------3 |3.000 |3 |6.000 |3 NULL |4.000 |4 |NULL |4 NULL |NULL |NULL |NULL |5 ij> select a, e, f, a+e as "A+E", g from (t right outer join s on (b = e)) right outer join r on (f = i) where a>1;A |E |F |A+E |G -------------------------------------------------------------3 |3.000 |3 |6.000 |3 ij> select a, e, f, a+e as "A+E", g from (t right outer join s on (b = e)) right outer join r on (f = i) where d>1;A |E |F |A+E |G -------------------------------------------------------------3 |3.000 |3 |6.000 |3 NULL |4.000 |4 |NULL |4 ij> select a, e, f, a+e as "A+E", g from (t right outer join s on (b = e)) right outer join r on (f = i) where h>1;A |E |F |A+E |G -------------------------------------------------------------3 |3.000 |3 |6.000 |3 NULL |4.000 |4 |NULL |4 NULL |NULL |NULL |NULL |5 ij> -- ROJ and LOJselect a, e, f, a+e as "A+E", g from (t right outer join s on (b = e)) left outer join r on (f = i);A |E |F |A+E |G -------------------------------------------------------------2 |2.000 |2 |4.000 |NULL 3 |3.000 |3 |6.000 |3 NULL |4.000 |4 |NULL |4 ij> select a, e, f, a+e as "A+E", g from (t right outer join s on (b = e)) left outer join r on (f = i) where a>1;A |E |F |A+E |G -------------------------------------------------------------2 |2.000 |2 |4.000 |NULL 3 |3.000 |3 |6.000 |3 ij> select a, e, f, a+e as "A+E", g from (t right outer join s on (b = e)) left outer join r on (f = i) where d>1;A |E |F |A+E |G -------------------------------------------------------------2 |2.000 |2 |4.000 |NULL 3 |3.000 |3 |6.000 |3 NULL |4.000 |4 |NULL |4 ij> select a, e, f, a+e as "A+E", g from (t right outer join s on (b = e)) left outer join r on (f = i) where h>1;A |E |F |A+E |G -------------------------------------------------------------3 |3.000 |3 |6.000 |3 NULL |4.000 |4 |NULL |4 ij> -- NO LOJ reorderingselect * from (t left outer join s on (b = e)) left outer join r on (f = i) where a > 0;A |B |C |D |E |F |G |H |I -----------------------------------------------------------------------------------------------1 |1.000 |1 |NULL |NULL |NULL |NULL |NULL |NULL 2 |2.000 |2 |2 |2.000 |2 |NULL |NULL |NULL 3 |3.000 |3 |3 |3.000 |3 |3 |3.000 |3 ij> select * from (t left outer join s on (b = e)) inner join r on (f = i);A |B |C |D |E |F |G |H |I -----------------------------------------------------------------------------------------------3 |3.000 |3 |3 |3.000 |3 |3 |3.000 |3 ij> select * from (t left outer join s on (b = e)) inner join r on (f = i) where a > 0;A |B |C |D |E |F |G |H |I -----------------------------------------------------------------------------------------------3 |3.000 |3 |3 |3.000 |3 |3 |3.000 |3 ij> select * from (t inner join s on (b = e)) inner join r on (f = i) where a > 0;A |B |C |D |E |F |G |H |I
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?