sql临时表,表变量,CTE,游标使用方法
if OBJECT_ID('groups') is not null
drop table groups
create table groups
(
groupid varchar(10),
val int null
)
insert into groups values('a','');
insert into groups values('a','');
insert into groups values('a','');
insert into groups values('b','');
insert into groups values('b','');
insert into groups values('b','');
--临时表
if OBJECT_ID('#tmp') is not null
drop table #tmp
go
create table #tmp
(
groupid varchar(10),
val int null
)
insert into #tmp select * from groups where groupid='b'
select * from #tmp
drop table #tmp
go
--临时表2
select * into #tmp from groups where groupid ='b'
select * from #tmp
drop table #tmp
go
--表变量
declare @t table(id varchar(10),val int)
insert into @t select * from groups where groupid='b'
select * from @t;
--CTE
with tb(id,value) as --alias column name
(
select * from groups where groupid='b'
)
select * from tb
--游标
if OBJECT_ID('#tmp') is not null
drop table #tmp
go
create table #tmp
(
groupid varchar(10),
val int null
)
declare @id varchar(10), @val int
declare c cursor fast_forward for select * from groups where groupid='b'
open c
fetch next from c into @id,@val
while @@FETCH_STATUS =0
begin
insert into #tmp values(@id,@val)
fetch next from c into @id,@val
end
close c
deallocate c
select * from #tmp
※注意事项
1,CTE后面紧跟delete语句时,cte的查询语句中只能是单表,否者删除不成功。
sql临时表,表变量,CTE,游标使用方法的更多相关文章
- SQL Server 表变量和临时表的区别
SQL Server 表变量和临时表的区别 一.表变量 表变量在SQL Server 2000中首次被引入.表变量的具体定义包括列定义,列名,数据类型和约束.而在表变量中可以使用的约束包括主键约束,唯 ...
- sql server 表变量、表类型、临时表
sql server 中临时表分为会话临时表和永久临时表.会话临时表在会话结束后自动被删除,永久临时表与基本表的使用上基本无差异,需要显示调用drop将其删除. 创建临时表 创建会话临时表 creat ...
- [转]SQL Server 表变量和临时表的区别
一.表变量 表变量在SQL Server 2000中首次被引入.表变量的具体定义包括列定义,列名,数据类型和约束.而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约 ...
- SQL SERVER表变量和临时表
一.表变量 表变量在SQL Server 2000中首次被引入.表变量的具体定义包括列定义,列名,数据类型和约束.而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约 ...
- sqlserver临时表或表变量代替游标
在很多场合,用临时表或表变量也可以替代游标 临时表用在表没有标识列(int)的情况下. 在表有标识列(int)的情况下可以用表变量,当然也可以用临时表. 利用临时表或表变量的原因时,生成一个连续的列 ...
- sql临时表与变量表
1)临时表存储在 tempdb 中,当不再使用时会自动删除 一般使用如下: --创建临时表 select * into #temp from TABLE --使用临时表 select * from # ...
- sql server 表变量存储临时查询数据
对于使用sql server 编写存储过程或者类似的sql 查询的时候我们使用表变量进行临时数据的存储,可以方便我们进行下来的数据处理 表变量的使用类似如下: declare @userinfo ta ...
- SQL 临时表或表变量替代游标
1.如果表没有自动增长的标识列(int) 使用临时表 SELECT IDENTITY(int) NewID ,.. INTO #tmp FROM YouTable 2.表有标识列 使用表变量 INSE ...
- SQL 临时表或表变量替代游标(转)
1.如果表没有自动增长的标识列(int) 使用临时表 SELECT IDENTITY(int) NewID ,.. INTO #tmp FROM YouTable 2.表有标识列 使用表变量 INSE ...
- SQL多表多字段比对方法
目录 表-表比较 整体思路 找出不同字段的明细 T1/T2两表ID相同的部分,是否存在不同NAME 两表的交集与差集:判断两表某些字段是否相同 两表的交集与差集:找出T2表独有的id 字段-字段比较 ...
随机推荐
- List遍历Java 8 Streams map() examples
1. A List of Strings to Uppercase 1.1 Simple Java example to convert a list of Strings to upper case ...
- 安装python 2.7条件下的pip环境
wget https://pypi.python.org/packages/ff/d4/209f4939c49e31f5524fa0027bf1c8ec3107abaf7c61fdaad704a648 ...
- Oracle多表关联如何更新多个字段
注意点:1.被update主表一定要加上过滤条件.2.查询出来更新结果集,同时也要作为被更新主表的条件,作为同步大家都是更新这部分数据.update student stu set (stu.name ...
- sqlite 判断表中是否包含 某个字段
数据库 都有一个 根表..(我的理解) 也就是 你创建了一个数据库 里面就带有 一个表 sqlite_master 字段有 type , name , tbl_name , rootpage ,sq ...
- grub配置指南
GRUB(统一引导装入器)是基本的Linux引导装入器.其有四个作用,如下:1.选择操作系统(如果计算机上安装了多个操作系统).2.表示相应引导文件所在的分区.3.找到内核.4.运行初始内存盘,设置内 ...
- 如何运行你的Android程序?
原文链接:http://android.eoe.cn/topic/android_sdk 本文中你将了解到: 1. 在真机上运行App 2. 在模拟器上运行App 你还应该阅读: 1. Using H ...
- Using ADB and fastboot
What is adb? The Android Debug Bridge (adb) is a development tool that facilitates communication bet ...
- [sql]生产库全备/mysql库体积大小查看
将生产db全备到内网某机器 两个思路: 1, 直接内网mysqldump导出. 因为阿里云的rds只有私网ip,所以办公网机器无法直接连到rds执行mysqldump 解决: 通过ssh tunnel ...
- Linux 索引节点(inode)详解
参考文章:http://www.ruanyifeng.com/blog/2011/12/inode.html
- 【JS设计模式】温习简单工厂模式、工厂方法模式、抽象工厂模式概念
注:空心箭头表示的是种继承关系,工厂类和产品类之间是一种依赖关系.是用箭头加虚线表示的,以下的模型图是用的实线是不正确(时间不够用,在这里我偷懒了.这个习惯不好,呵呵) 简单工厂模式(Simple F ...