首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

使用表变量保存中间结果来简化小弟我们的查询

2013-10-22 
使用表变量保存中间结果来简化我们的查询在开发中,我们经常会使用到表变量,通常会先将查询的某些中间结果

使用表变量保存中间结果来简化我们的查询

在开发中,我们经常会使用到表变量,通常会先将查询的某些中间结果保存在表变量中,为后续的操作做准备。

下面给出一个简单的实例来演示一下表变量的这种应用。

 

该实例使用下面的两张表,示例数据一并给出,如下图所示。

表1 Student表

使用表变量保存中间结果来简化小弟我们的查询

表2 Class表

使用表变量保存中间结果来简化小弟我们的查询

该实例需要完成的任务为:查询出教师“yl”的所有学生信息。

当然,这个任务很简单,我们完全可以使用下面的SQL查询来完成。

select a.id,a.name,a.age,a.classid from tb_Student a,tb_Class b where a.classid=b.classid and b.teacher='yl'

但是本例主要是为了演示表变量的使用。所以采用下面的方法来实现,可能在这里会感觉这种方法稍显麻烦,但是在某些特定的情况下,这种实现方式是必须的或者说是一种可以考虑的方法。

declare @classIdTable table(classid int );insert into @classIdTable select classid from tb_Class where teacher='yl'select * from tb_Student where classid in (select classid from @classIdTable)

此种方式将满足条件的classid先保存在表变量@classIdTable,再利用表变量中的classid去查询表tb_Student。

最终查询结果如下。

使用表变量保存中间结果来简化小弟我们的查询

热点排行