博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CTE初识
阅读量:5051 次
发布时间:2019-06-12

本文共 896 字,大约阅读时间需要 2 分钟。

微软从SQl2005起引入了CTE(Common Table Expression)以强化T-SQL。这是一个类似于非持久视图的好东西。

 

 

正常的SQL语句:

select * from person.StateProvince where CountryRegionCode in (select CountryRegionCode from person.CountryRegion where Name like 'C%')

CTE写循环递归的语句:

with cr as ( select CountryRegionCode from person.CountryRegion where Name like 'C%'   --这是条件) select * from person.StateProvince where CountryRegionCode in (select * from cr)

 

在使用CTE时应注意如下几点: 

1. CTE后面必须直接跟使用CTE的SQL语句(如select、insert、update等),否则,CTE将失效。 
2. CTE后面也可以跟其他的CTE,但只能使用一个with,多个CTE中间用逗号(,)分隔。 
3. 如果CTE的表达式名称与某个数据表或视图重名,则紧跟在该CTE后面的SQL语句使用的仍然是CTE,当然,后面的SQL语句使用的就是数据表或视图了。 
4. CTE 可以引用自身(递归查询),也可以引用在同一 WITH 子句中预先定义的 CTE。不允许前向引用。 
5. 不能在 CTE_query_definition 中使用以下子句: 
(1)COMPUTE 或 COMPUTE BY 
(2)ORDER BY(除非指定了 TOP 子句) 
(3)INTO 
(4)带有查询提示的 OPTION 子句 
(5)FOR XML 
(6)FOR BROWSE 
6. 如果将 CTE 用在属于批处理的一部分的语句中,那么在它之前的语句必须以分号结尾。

转载于:https://www.cnblogs.com/llcdbk/p/3894635.html

你可能感兴趣的文章
AutoField的话就报错:'AutoField' object has no attribute 'rel'
查看>>
被除数、除数、商、余数的正负号规律一
查看>>
nios ii小实验——SDRAM读写
查看>>
matlab 破解教程密钥
查看>>
大话设计模式读书笔记(三) 单一职责原则和开放-封闭原则和依赖倒转原则...
查看>>
作业3 身份认证 (正心209)
查看>>
EXT Grid 默认展开所有行
查看>>
shell 文件备份脚本
查看>>
Android studio 混淆打包
查看>>
ES6学习笔记(五)-函数扩展
查看>>
统计学习方法笔记 -- 朴素贝叶斯
查看>>
PyQt5+python+pycharm开发环境配置
查看>>
python做语音信号处理
查看>>
App被拒选择回复还是重新提审,如何选择最高效的应对方式?
查看>>
第一阶段冲刺(第二天)
查看>>
四、优化及调试--网站优化--SEO在网页制作中的应用
查看>>
23个常用的文件处理方法
查看>>
51Nod 1182 完美字符串
查看>>
十天冲刺(5)
查看>>
C语言中关于strcry 引发的思考
查看>>