位置: 编程技术 - 正文

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中存储过程的用法)

  • 个税申报数是按应发数还是实发数进行申报?
  • 购买汽车的印花税要计入汽车原值吗
  • 个体工商户的免税政策
  • 城镇土地使用税的征税范围
  • 收据能入账抵税吗
  • 出口未报关收到外汇怎样处理
  • 电子承兑超期一天怎么兑付
  • 预交土地增值税怎么计算公式
  • 进项转出再差额征收待抵扣
  • 企业发放员工工资
  • 虚开发票走账对方不返还如何处理?
  • 含有商品编码的增值税普通发票如何开具?
  • 建筑服务可以差额征收吗
  • 培训费增值税专用发票
  • 电器供应
  • 联营企业发生亏损怎么处理
  • 集团和区域公司的关系
  • 年度终了,会计部门都要将旧账编造清册
  • 去年的发票可以红冲重新开具吗?
  • 研发费用属于期余资产吗
  • 农产品进项税额怎么计算
  • 如何安全的处置电子邮件
  • icon files
  • 职工教育经费超过可以结转以后年度怎么做账
  • 高新技术企业补助需要交所得税吗
  • php连接数据库代码是什么
  • 期间损益包括
  • nginx静态文件服务器
  • 工资储备金制度
  • 公司注销前的资料怎么办
  • 公司内部往来双向挂账
  • 专用发票密码区模糊了影响报销吗
  • 若依原创
  • vue父组件如何调用子组件的方法组合式api
  • 真题解析买谁的
  • mobilenet模型
  • cmsv6无法连接服务器
  • 总公司如何成立子公司
  • 应交税费的期末余额在借方表示什么
  • 自然人税收管理系统官网
  • 航天信息服务费的会计分录
  • 劳务派遣公司必须有劳务派遣证吗
  • 个人所得税申报截止时间
  • 企业所得税会计利润总额计算公式
  • 房地产企业土地使用税纳税义务终止
  • 企业不交所得税的情况
  • mysql load local
  • 应交增值税转入未交增值税怎么算
  • 酒店购买天然气开票的摘要写什么
  • 以前年度损益调整借贷方向
  • acca中ebq等于
  • 现金余额出现负数的原因
  • 取得无形资产发生的相关费用
  • 房地产增值税发票是什么意思
  • 成本暂估跨年度怎么算
  • 什么是无形资产包括哪些
  • 以前年度损益调整账务处理分录
  • 应收其他应收区别
  • 解除非正常户罚款调整操作
  • mysql死锁的情况
  • win7系统怎么关闭病毒防护
  • mac怎么修改默认应用
  • centos7配置免密登录
  • centos6.7安装图形界面教程
  • windows个性化设置在哪里
  • WeatherEye.exe - WeatherEye 是什么进程
  • securecrt输入中文乱码
  • rftray.exe - rftray是什么进程 有什么用
  • win7无法安装怎么办
  • python列表详解
  • cocos2dx-js
  • Android 开源项目集合
  • linux系统tomcat启动
  • vue assign
  • window.showModalDialog谷歌不兼容
  • android mvp mvc
  • 怎么看网页的编码格式
  • 甘肃国家税务总局
  • 税控盘怎么领用
  • 国税局黑龙江省
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设