mysql 存储过程 with as_SQL数据库中临时表、临时变量和with as关键词创建“临时表”的区别...

本文介绍了SQL数据库在处理数据时创建临时表的三种方式:with as子查询、临时表和表变量。详细阐述了with as方法的用法及其优化性能,临时表的生命周期和特性,以及表变量的区别和应用场景。并讨论了如何根据数据量和查询需求选择合适的方法。
摘要由CSDN通过智能技术生成

SQL数据库中数据处理时,有时候需要建立临时表,将查询后的结果集放到临时表中,然后在针对这个数据进行操作。

创建“临时表”(逻辑上的临时表,可能不一定是数据库的)的方法有一下几种:

1.with tempTableName as方法(05之后出现):

with temptable as 其实并没有建立临时表,只是子查询部分(subquery factoring),定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用WITH AS短语,则只要执行一遍即可。

示例:

48304ba5e6f9fe08f3fa1abda7d326ab.png

with Snd

as

(

select * from category

where cgtype=2

and parentid=@FstCgid

),

thrd

as

(

select c.* from category c

inner join Snd s

on c.parentid=s.cgid

a

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值