dtcms模板 比特微 Git springcloud HTTP请求 状态模式 rest lambda replace outlook layer insert ios4 Font Awesome 后台管理界面 网络营销视频教程 office2016修复 map删除指定元素 java手机验证码 python模块 python程序 python字典添加 python等待10秒 python怎么下载 java文件 java多态 java的string java变量类型 java数据结构 java基础类型 java字符串查找 java中数据类型 java的socket通信 java怎么安装 java日期格式 java日期转时间戳 java字符比较 javascript源代码 网络适配器驱动 python入门经典
当前位置: 首页 > 学习教程  > 编程语言

sql server笔记(临时表以及WITH AS短语)

2020/7/24 10:27:53 文章标签:

sql server笔记

WITH AS短语

我的理解就是将查询结果集单独抽离出来作为表,供下面查询进行调用
WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。

特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用WITH AS短语,则只要执行一遍即可。如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS短语所获取的数据放入一个TEMP表里,如果只是被调用一次,则不会。而提示materialize则是强制将WITH AS短语里的数据放入一个全局临时表里。很多查询通过这种方法都可以提高速度。

with 别名 as (  //这里面是查询sql 
select 100+id as id, replace(newid(),'-','') as ids,0 as LastId, Pleat as name,pleat.PleatEn as Code from PleatTable as pleat
Union
select 1000+id as id, replace(newid(),'-','') as ids, 100+LastId as LastId, Prefecture as name,PrefectureEn as Code from PrefectureTable
)

//使用
select * from 别名 

临时表

select * into #临时表名 from 你的表;
select * into ##临时表名 from 你的表;
注:以上的#代表局部临时表,##代表全局临时表

使用
删除:
drop table #临时表名;
drop table ##临时表名;

查询临时表
select * from #临时表名;
select * from ##临时表名;

//配合with as 使用
with tas as (
select 100+id as id, replace(newid(),'-','') as ids,0 as LastId, Pleat as name,pleat.PleatEn as Code from PleatTable as pleat
Union
select 1000+id as id, replace(newid(),'-','') as ids, 100+LastId as LastId, Prefecture as name,PrefectureEn as Code from PrefectureTable
)
//创建 tas 表为 名为#fortest 的临时表
select * into #fortest from tas;
//查询临时表
select * from #fortest


本文链接: http://www.dtmao.cc/news_show_50285.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?