SQL 使用between完成表連接

現在有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;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章