現在有Teacher表
以及Age_J表
我們希望使用Teacher中的Age作爲判別對象,將Age_LVL左連接到Teacher表中
select t.t_no,t.t_name,t.t_age ,a.age_lvl from teacher t left join age_j a on t.t_age between a.min_rng and a.max_rng
這裏的Age_lvl表是沒有值重疊的,如果我們的Age_lvl表變更一下,包含值重疊的情況
再次運行sql語句,得到的結果就有差異了
描述完了。把相關測試建表語句的數據貼一下
create table AGE_J ( age_lvl VARCHAR2(10), min_rng INTEGER, max_rng INTEGER ); create table TEACHER ( t_no NUMBER(5) not null, t_name VARCHAR2(8), t_age NUMBER(3) ); insert into age_j (AGE_LVL, MIN_RNG, MAX_RNG)values ('青年', 18, 29); insert into age_j (AGE_LVL, MIN_RNG, MAX_RNG)values ('中年', 30, 45); insert into age_j (AGE_LVL, MIN_RNG, MAX_RNG)values ('壯年', 46, 59); insert into age_j (AGE_LVL, MIN_RNG, MAX_RNG)values ('老年', 60, 89); insert into TEACHER (T_NO, T_NAME, T_AGE)values (10002, '李大釗', 24); insert into TEACHER (T_NO, T_NAME, T_AGE)values (10003, '畢淑敏', 30); insert into TEACHER (T_NO, T_NAME, T_AGE)values (10004, '朱自清', 59); insert into TEACHER (T_NO, T_NAME, T_AGE)values (10008, '聞一多', 26); commit;