位置: 编程技术 - 正文

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

  • 年度应纳税所得额计算公式
  • 专用发票超过360天认证期怎么办?
  • 减免税款年末有余额吗
  • 可以从开发成本直接结转至主营业务成本吗
  • 增值税零申报附加税费情况表没发保存
  • 发票备注没写
  • 增值税进项税额不予抵扣的项目包括
  • 工程款开票后增值税怎么做分录?
  • 支付技术转让费能加计扣除
  • 生物资产出售的账务处理
  • 跨地区预缴税款需缴纳哪些
  • 虚开增值税发票具体操作是怎样的?
  • 公司筹建期间发生的费用没有发票
  • 定期存款利息税是多少
  • 一般户可以收货款么
  • 待转销项税额结转分录
  • 长期闲置的机器叫什么
  • 鸿蒙工具箱使用视频
  • 经营租入的设备计入什么科目
  • SetPoint.exe - SetPoint是什么进程 有什么用
  • 企业支付宝收到钱到哪里
  • 产品生产业务核算工作实训
  • 应付职工薪酬的明细科目有哪些
  • 金融机构通过
  • yii2框架运行原理
  • sybyl安装教程
  • 加德满都治安状况如何
  • 潜水时看到的鱼
  • 私人定制ai绘画下载
  • yolov5训练命令
  • 车船税是不是车损
  • 外资公司股东
  • chrome插件开发拦截ajax
  • 债务人以固定资产债务重组
  • 进项票和销项票是什么意思
  • sql server 创建数据表状态1第三行语法错误怎么回事
  • 企业年度报告填报时间
  • 长期股权投资股利确认时间点
  • 发生销售退回账务处理
  • 以前年度的损益调整为负值说明什么
  • 其他应付款核算范围包括哪些
  • 收到承兑的账务处理
  • 年金现值和年金终值的例题
  • 小规模企业开具增值税专用发票
  • 开了假发票什么后果?
  • 工会经费是不是税费
  • 公司定额征收需要什么
  • 收到收到
  • 新会计准则会计科目明细表
  • 解除职工劳动关系补偿
  • centosyum源
  • win7怎么设置桌面位置
  • win7自带xp虚拟机怎么安装驱动
  • linux临时目录在哪
  • Win10 Mobile 10572怎么更新升级? 需回滚到WP 8.1
  • centos pam
  • vrvedp_m.exe是什么进程
  • subss
  • linux重复命令
  • win10系统更新出错怎么办
  • Win10 Mobile RedStone 14283已修复与已知问题汇总
  • nodejs函数返回值
  • 批处理文件命令大全
  • python中myf
  • cocos2d开发的知名游戏
  • 批量管理远程桌面
  • 用户体验ui
  • unity的shader用法
  • 使用权资产
  • 车辆购置税2024年政策
  • 北京930末班车时间表
  • 国家税务总局通知公告
  • 西安市经开区管委会官网
  • 增值税报表进项税和销项税都不填可以吗
  • 陕西宝鸡国税人才招聘
  • 预交增值税税款退税流程
  • 资源税计税价格包括从坑口
  • 伴生矿和伴采矿的区别
  • 调研报告与调研文章的区别
  • 小规模六税两费减免分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设