首页 > 代码库 > sql中with as的用法练习
sql中with as的用法练习
在工作中经常看到有人使用with as,查询很顺畅,也很快,很好奇,在网上也有不少资料,看了大神的文章,也练习一下。
首先给出两位位大神文章的链接,介绍十分详细:http://www.cnblogs.com/fygh/archive/2011/08/31/2160266.html
另一位大神的文章:http://www.cnblogs.com/CareySon/archive/2011/12/12/2284740.html
为了自己更好地理解,还是老实练习一下(概念方面的请参考上面的链接):
sql脚本,方便以后随时练习:
1 create table #Dept 2 ( 3 ID INT, 4 Name nvarchar(30) 5 ) 6 insert #Dept 7 select 1,‘上海一区‘ 8 union all 9 select 2,‘苏州一区‘10 union all11 select 3,‘南京一区‘12 union all13 select 4,‘上海二区‘14 union all15 select 5,‘苏州二区‘16 union all17 select 6,‘南京二区‘18 19 20 21 create table #Proj22 (23 ID INT,24 DeptID INT,25 Name nvarchar(30)26 )27 28 29 insert #Proj30 select 1,1,‘九寨沟旅游‘31 union all32 select 2,2,‘黄山探险‘33 union all34 select 3,5,‘月光码头自助‘35 union all36 select 4,5,‘海底捞火锅‘37 union all38 select 5,6,‘睡大觉‘39 union all40 select 6,3,‘看电影‘41 union all42 select 7,2,‘长白山旅游‘43 union all44 select 8,5,‘香港维多利亚坐船‘45 union all46 select 9,2,‘发奖金啦‘
现在的需求是:找出要求部门包含“苏州”的项目表中的数据,一般来说,这样的需求一个简单的子查询就可以了,如下:
这只是嵌套了一层子查询,不太复杂,如果多层,可读性就很差,大神使用了这样一种方式:
这种方式虽然容易维护,但会带来性能上的损失,毕竟为了一个查询建了一张表嘛。
下面隆重祭出CTE:公用表表达式。
sql中with as的用法练习
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。