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 】