SQL语句查询——以一个表中的两列数据为条件据查询另一个表中的数据

这篇博客介绍了如何使用SQL语句从学生基本信息表中查询语文成绩大于80分的学生信息。通过联接操作,结合学生考试成绩总分表和考试成绩明细表,实现了跨表查询。查询条件是将班级和姓名拼接后匹配,确保了查询结果的准确性。
摘要由CSDN通过智能技术生成

SQL语句查询——以一个表中的两列数据为条件据查询另一个表中的数据

有三个表格:分别如下
表一【学生基本信息表】包含:班级、姓名、年龄、学号、家庭住址等
表二【学生考试成绩总分表】包含:ID、班级、姓名、总分
表三【考试成绩明细表】包含:ID、各科成绩名称、分数

查询要求:

查询语文成绩大于80分的学生的基本信息,但是姓名有重复的,(即可能1班、2班都有小明)

select *   FROM Students
  where ClassName + CAST(Name as varchar ) 
  in (select ClassName + CAST(Name as varchar )  from SumScore where ID in
  		(select ID from Score_DETAIL where ITEM_NAME ='语文' and score > 80)
	  )

注释:

CAST (expression AS data_type)
将某一列的数据转换成其他类型的数据。
查询语句中的【ClassName + CAST(Name as varchar ) 】这一部分,是将班级和姓名连起来,然后去比较;使用到➕,左右两边都得是字符串的格式,所以用到CAST,但是姓名本身就是varchar所以这里的CAST()可以省略,变成【ClassName + Name 】

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值