子查询的三种使用方式

子查询的三种使用方式:

1,子查询作为条件

  1》如果是跟在> < >= <= = != <>后面就必须保证子查询             只返回单个值,如果是返回多行一列,那么就需要使用in来指定范围,如果是返回一行多列,那么就报错

  Eg:(多行一列)

  Select * from Student where ClassId in (select ClassId from grade)

 

2,子查询作为结果集(可以将from后面的表用虚拟结果集进行替换)

//根据主键StudentNo排序,Row_NUMBER()会生成行号,over()指定排序字段

Select *,Row_NUMBER() over(order by StudentNo) from Student

Eg://虚拟结果集需要设置别名(temp) 生成的行号也要指定别名(as id)

Select * from (select *,Row_NUMBER() over(order by StudentNo) as id from Student) temp where id>0 and id<=5//分页

 

 

3,子查询作为列的值

Select (select studentname from Studnet where 

Student.StudentNo=Result.StudentNo),StudentResult from Result

posted on 2015-04-01 17:18  --如鱼得水--  阅读(939)  评论(0)    收藏  举报

导航