此题目考查的是SET与SELECT语句给变量赋值的区别。a,b,c,d选项在语法结构上并没有错误,但是在表达式返回多个值时,select语句将返回的最后一个值给变量,set语句会出错。
正确答案是选项A。本题要查询选修了所有课程的学生信息,即查询有些学生没有一门课程他没有选的。如果有一门课没有选,则此时(1)select * from select_course sc where sc.student_id=ts.id and sc.course_id=c.id存在null,这说明(2)select * from course c 的查询结果中确实有记录不存在(1查询中),查询结果返回没有选的课程,此时select * from student ts 后的not exists 判断结果为false,不执行查询。
此题目考查的是SQL SERVER数据库理解子查询的概念和注意事项。B 子查询一般用在WHERE语句中C 子查询可以返回多个结果集合因此AD是正确的
此题目考察的是SQL Server中的SQL编程的select语句输出,在SQL Server中给字段取别名有三种方式,用等于号时别名放在列名的前面,用as别名放在列名后,as可省略。所以选项A、B、C的写法是正确的,D选项是不正确的
虽然技术含量不高但是我的想法比较简单好理解
如果题目给出是"一些"那肯定代码中含有some
如果题目给出是"任何"那肯定代码中含有any
如果题目给出是"所有或者全部"那肯定代码中含有all
T-SQL中,Case语句有两种格式。选项A和选项D代码分别符合Case语句的两种语法格式。但选项B的Case语句编写有错,在结束位置使用as而不是end关键字;而执行选项C代码在结果集中会出现2个ClassID列,与本题要求不符