为了账号安全,请及时绑定邮箱和手机立即绑定

sql 中between是否能用来做连接?

sql 中between是否能用来做连接?

繁星coding 2019-05-16 10:09:37
表1中字段为:姓名,成绩 表2中字段为 等级,上限,下限...表2中内容大致就是第一等级100-90分,第二等级90-80分,第三等级 80-0分....大致这个意思,请问是否能将这连个表格用jion连接起来成为:姓名,成绩,等级?sql的语句应该怎么写?
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

这个不能用between and,因为between and 是个闭区间,比如

between 100 and 200,这个包含100和200,而between 200 and 300,包含200和300,这样的话,200就同时属于两个分段区域了

 

如果是这样的话能稍微好点

等级  开始分数  结束分数

一等     90           100

二等     80            90

三等     0              80

 

如果是我上边这样可以写做

1

2

select 表1.姓名,表2.等级

from 表1,表2 where 表1.成绩>=表2.开始分数 and 表1.成绩<表2.结束分数

 

如果你是仅有

等级    分数

一等   90-100

二等   80-90

三等   0-80

那么这样的话,这个表形同虚设

 

你只能用这样的语句

1

2

3

4

5

6

select

姓名,

case when 成绩>90 and 成绩<=100 then '一等'

         when 成绩>80 and 成绩<=90 then '二等'

         else '三等' as '等级'

from 表1

                  



 




查看完整回答
反对 回复 2019-05-17
?
慕的地10843

TA贡献1785条经验 获得超8个赞

select t1.*, t2.*
from 表1 t1 join 表2 t2
on t1.成绩>=t2.下限 and t1.成绩<t2.上限

查看完整回答
反对 回复 2019-05-17
?
PIPIONE

TA贡献1829条经验 获得超9个赞

楼主这样写即可:

1

2

3

4

5

6

7

8

select  姓名,

 case when 成绩>90 and 成绩<=100 then '第一等'

  

         when 成绩>80 and 成绩<=90 then  '第二等'

  

         else '三等' 

  end   as '等级'

 from 表1

 




查看完整回答
反对 回复 2019-05-17
  • 3 回答
  • 0 关注
  • 397 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信