一.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短语里的数据放入一个全局临时表里。很多查询通过这种方法都可以提高速度。

string data = @"SELECT '492494' rwd,'11' rq,'1' bl,'壹元整' md,'1' mr,'a' kx,'055fa99b-a932-4924-9430-71cf13bb6858' gid
UNION ALL SELECT '492494','1','1','壹元整','1','b','055fa99b-a932-4924-9430-71cf13bb6858'
UNION ALL SELECT '492494','1','1','壹元整1','1','c','055fa99b-a932-4924-9430-71cf13bb6858'"; string sql = string.Format("WITH K AS ( {0} ) update zab_RDType set Rdt_name=K.Un from K left join zab_RDType on K.Ui=Rdt_id", data);
with K as (
select ci_designerId,tb_diqu
,sum(case when ci_leixing=1 then (case when ci_sgYq=1 then ci_sgJinE else 0 end)+(case when ci_sjYq=1 then ci_sjJinE else 0 end)
else 0 end) bgM
,sum(case when ci_leixing=2 then (case when ci_sgYq=1 then ci_sgJinE else 0 end)+(case when ci_sjYq=1 then ci_sjJinE else 0 end)
else 0 end) cyM
,sum(case when ci_leixing=3 then (case when ci_sgYq=1 then ci_sgJinE else 0 end)+(case when ci_sjYq=1 then ci_sjJinE else 0 end)
else 0 end) syM
,sum(case when ci_leixing=4 then (case when ci_sgYq=1 then ci_sgJinE else 0 end)+(case when ci_sjYq=1 then ci_sjJinE else 0 end)
else 0 end) jdM
,sum(case when ci_leixing=5 then (case when ci_sgYq=1 then ci_sgJinE else 0 end)+(case when ci_sjYq=1 then ci_sjJinE else 0 end) else 0 end) qtM
,SUM((case when ci_sgYq=1 then ci_sgJinE else 0 end)+(case when ci_sjYq=1 then ci_sjJinE else 0 end)) zM
from zab_clientInfo where ci_state=7
group by ci_designerId,tb_diqu
) select u_id,u_xingMing,u_kaHao,u_quYu,bm_name,ISNULL(dq_id,0)dq_id,dq_name,ISNULL(zM,0)zM
,ISNULL(bgM,0)bgM,ISNULL(cyM,0)cyM,ISNULL(syM,0)syM,ISNULL(jdM,0)jdM,ISNULL(qtM,0)qtM
from zab_userList a
left join K on a.u_id=ci_designerId and a.tb_diqu=K.tb_diqu
left join zab_buMen b on bm_id=u_zuHao and b.tb_diqu=k.tb_diqu
left join zab_diQu on a.tb_diqu=dq_id
where u_zhuangtaiyg<>'离职' and u_id is not NULL
order by zm desc

结果:

WITH AS的含义的更多相关文章

  1. 由css reset想到的深入理解margin及em的含义

    由css reset想到的深入理解margin及em的含义 原文地址:http://www.ymblog.net/content_189.html 经常看到这样语句,*{ margin:0px;pad ...

  2. Stack的三种含义

    作者: 阮一峰 日期: 2013年11月29日 学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈". 理解这个概念,对于理解程序的运行至关重要.容易混淆的是,这个词 ...

  3. wireshark抓包工具简介以及tcp三次握手的一些含义

    wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必须了解网络协议,否则就看不懂wireshark了.为了安全考虑, ...

  4. PV、EV、AC、BAC、EAC、ETC等计算公式含义

    PV.EV.AC.BAC.EAC.ETC等计算公式含义 PV Planned Value:计划值 应该完成多少工作, (按照计划截止目前应该花费的预算) AC Actual Cost:实际成本, 完成 ...

  5. [MySQL]show index from tb_name命令各列的含义

    show index from table_name 这个命令有助于诊断性能低下的查询,尤其是查询是否使用了可用的索引. 下面介绍下 这个命令显示的结果列的含义: | Table | Non_uniq ...

  6. CPU状态信息us,sy,ni,id,wa,hi,si,st含义

    转自:http://blog.csdn.net/sasoritattoo/article/details/9318893 转自:http://fishermen.iteye.com/blog/1995 ...

  7. http错误代码含义中英文对照

    Http错误代码含义中文 概要当用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字 ...

  8. linux中shell变量$#,$@,$0,$1,$2的含义解释

    linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

  9. if [ "$变量1"x = "$变量2"x ]中x的含义

    问题:if [ "$变量1"x = "$变量2"x ]中x的含义是? 答:“x”字符可以为任意字符,用于防止变量为空时,某些版本的bash中会产生错误: 在一个 ...

  10. 有关JVM配置参数含义

    1.参数的含义-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M-vmargs 说明后面是VM的参数,所以后面的其实都是JV ...

随机推荐

  1. KeyValue与KeyData与KeyCode区别(转)

    KeyValue与KeyData与KeyCode区别(转) KeyPress事件 KeyPressEventArgs参数 Handled /是否处理过KeyPress事件 KeyChar //按下的键 ...

  2. Java中系统属性Properties介绍 System.getProperty()参数大全

       在JDK文档中System类中有这样的方法getProperties()在此方法的详细介绍中有下面的参数可供使用: java.version Java 运行时环境版本 java.vendor J ...

  3. Sumsets

    题目连接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=91209#problem/A 题意:给定一个整数几何S,找出一个最大的d,使得a ...

  4. web app 自适应方案总结 弹性布局之rem

    关于rem,主要参考文档 1.腾讯ISUX (http://isux.tencent.com/web-app-rem.html) 2.http://www.w3cplus.com/css3/defin ...

  5. artdialog4.1.7 中父页面给子页面传值

    artdialog4.1.7中父页面给子页面传值时看了一些网友的解决方法: 在父页面声明全局变量 var returnValue=“ ”,子页面用art.dialog.opener.returnVal ...

  6. 过河问题nyoj47

    时间限制:1000 ms  |  内存限制:65535 KB 难度:5   描述 在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边.如果不借助手电筒的话,大家是无论如何也不敢过桥去的.不幸的是 ...

  7. openfire配置MSSQL说明(数据库设置)

    1.进入“SQL Server 配置管理器(SQL Server Configuration Manager)”,在左边窗口选择“SQL Server 2005网络配置”下面的分支“MSSQLServ ...

  8. 【iCore3 双核心板】例程三十二:UART_IAP_ARM实验——更新升级STM32

    实验指导书及代码包下载: http://pan.baidu.com/s/1hrnLJwC iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  9. mac自定义安装nodejs步骤

    自定义安装的好处是nodejs相关的文件都在同一个文件夹下,且不与其它程序的文件混合在同一文件夹下. 1.下载node并解压缩:https://nodejs.org/dist/,选择tar.gz包下载 ...

  10. (转)php自己创建框架

    前言 说到写PHP的MVC框架,大家想到的第一个词--“造轮子”,是的,一个还没有深厚功力的程序员,写出的PHP框架肯定不如那些出自大神们之手.经过时间和各种项目考验的框架.但我还是准备并且这么做了, ...