位置: 编程技术 - 正文

T-SQL 查询语句的执行顺序解析(sql中查询语句)

编辑:rootadmin

(5)SELECT (5-2) DISTINCT(5-3)TOP(<top_specification>)(5-1) <select_list>

(1)FROM (1-J) <left_table> <join_type> JOIN <right_table> on <on_predicate>

(2)WHERE <where_predicate>

(3)GROUP BY <group_by_specification>

(4)HAVING <having_predicate>

(6)ORDER BY <order_by_list>;

  每一步都会生成一个虚拟表,该虚拟表会作为下一步的输入。这些虚拟表对于调用者是不可用的,只有最后一步生成的虚拟表才会返回给调用者。如果在查询中没有指定某一个子句,则会跳过相应的步骤。接下来就简单地描述一下这些不同的逻辑步骤。

(1)FROM FROM阶段标识出查询的来源表,处理表运算符,每个表运算符也会应用一系列子阶段。例如,在联接运算中涉及的阶段是(1-J1)笛卡尔积、(1-J2)ON筛选器和(1-J3)添加外部行。FROM阶段生成虚拟表VT1。

(1-J1)笛卡尔积 这个阶段对表运算符涉及的两个表执行笛卡尔积(交叉联接),生成虚拟表VT1-J1。

(1-J2)ON筛选器 这个阶段对VT1-J1中的行根据ON子句中出现的谓语进行筛选。只有让该谓语取值为TRUE的行,才能插入VT1-J2中。

(1-J3)添加外部行 如果指定了OUTER JOIN(相对于CROSS JOIN 或 INNER JOIN),则将保留表(preserved table)中没有找到匹配的行,作为外部行添加到VT1-J2中,生成VT1-J3。

(2)WHERE 这个阶段根据在WHERE子句中出现的谓语(<where_predicate>)对于VT1中的行进行筛选。只有让谓语计算结果为TRUE的行,才会插入VT2中。

(3)GROUP BY 按照GROUP BY子句中指定的列名列表,将VT2中的行进行分组,生成VT3。

(4)HAVING 根据HAVING子句中出现的谓语(<having_predicate>)对VT3中的分组进行筛选。只有让谓语计算结果为TRUE的组,才会插入到VT4。

(5)SELECT 处理SELECT子句中的元素,生成VT5。

(5-1)计算表达式 计算SELECT列表中的表达式,生成VT5-1。

(5-2)DISTINCT 删除VT5-1中的重复行,生成VT5-2。

(5-3)TOP 根据ORDER BYi子句定义的逻辑排序,从VT5-2中选择前面指定数量或百分比的行,生成表VT5-3。

(6)ORDER BY 根据ORDER BY子句中指定的列名列表,对VT5-3中的行进行排序,生成游标VC6。

标签: sql中查询语句

本文链接地址:https://www.jiuchutong.com/biancheng/348876.html 转载请保留说明!

上一篇:学习SQL语句(强大的group by与select from模式)(sql 语句)

下一篇:sql存储过程获取汉字拼音头字母函数(sql中存储过程的用法)

  • 一般纳税人劳务派遣税率
  • 租赁合同印花税双方都要交吗
  • 无形资产出售利得计入
  • 残保金滞纳金能超过本金吗
  • 预算收入包括增值税吗
  • 一税两费可以从费用中扣除吗
  • 关税消费税增值税计算公式
  • 会计凭证前面放什么
  • 长期股权投资的账务处理
  • 离婚财产分割涉及偷税漏税可以移交税务局调查吗
  • 预计负债收回的会计分录
  • 其他应交款入哪个科目
  • 受托加工物资产包括哪些
  • 收到其他银行划回的款项属于什么科目
  • 公司购买销售材料怎么写会计分录?
  • 资产负债表年初余额是不是一直不变
  • 网上办税大厅查询财务负责人?
  • 年所得12万元以上个人
  • 可以自行设计的软件
  • 其他应收款如何调平分录
  • 电子承兑到期收款怎么做账务
  • 小规模纳税人发票图片
  • 银行借款利息支出可以税前扣除吗
  • 贴现利息会计处理
  • 开办费 工资
  • 税法中的视同行为如何开具发票
  • php图形化编程
  • linux模块的概念
  • 系统托盘开不开
  • 电脑开机后桌面图标变乱
  • 电脑桌面调出键盘
  • 政府性基金收入怎么收
  • 如何申请办理港澳通行证
  • 企业产房屋拆迁
  • 跨年度发票会计分录
  • 什么是跨域以及跨境电商
  • 锡特f8
  • 计提工会经费会计账务处理
  • php十进制转二进制算法
  • ai复制命令
  • 数学建模三个人谁最难
  • telnet 执行命令
  • 帝国cms使用手册
  • 企业购买期货
  • 电商会计如何做账
  • sql server 2008 r2教程
  • winXP系统安装SQLServer2005开发版具体过程与注意问题
  • 计提工资 个人所得税
  • 一般纳税人商品暂估按销售的数量可以暂估成本吗
  • 返利冲减销售收入还是进费用
  • 政府补贴需要缴纳印花税吗
  • 汇算清缴补缴所得税的报税利润表怎么报
  • 非营利性养老院收费标准一般是多少
  • 发票冲红重开,重开时是按新税率还是旧税率?
  • 报销差旅费大于预借差旅费会计分录
  • 免税设备是什么意思
  • 固定资产一次性扣除后第二年账务处理
  • 土地回收补偿费怎么算
  • 递延所得税资产怎么计算
  • 保险公司赔付进项税
  • 普通发票作废如何恢复
  • 工业企业中制造费用包括哪些内容
  • mariadb10.1
  • win2003好用吗
  • mac装双系统后无法开机
  • win1021h2正式版
  • mediaexplorer是什么意思
  • 如何选择性地隐藏部分任务栏程序
  • python选择器
  • python生成器怎么用
  • javascript中window.onload
  • JavaScript实现99乘法表及隔行变色实例代码
  • sdk官方网站
  • 法人变更税务登记表怎么填
  • 单位为员工报销医药
  • 陕西税务厅
  • 浙江省个体工商户税收政策
  • 四季度预缴申报表
  • 新公司办理发票税控机流程?
  • 怎么打印个人所得税扣缴申报表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设