首页 > 数据库技术 > 详细

SQL 使用between完成表连接

时间:2021-01-24 18:42:44      阅读:28      评论:0      收藏:0      [点我收藏+]

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

 

SQL 使用between完成表连接

原文:https://www.cnblogs.com/adamgq/p/14321346.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!