位置: 编程技术 - 正文

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

  • 个人开具服务费发票税率
  • 应收留抵税额退税款属于哪类科目
  • 税金及附加会计分录
  • 出口退免税的退税办法为
  • 医院固定资产折旧率是多少
  • 小规模收入超过多少必须转一般纳税人
  • 业务招待费扣除基数的收入包括哪些
  • 上年度职工月平均工资是税前还是税后
  • 个体户核定5万每个月要交多少税钱
  • 项目所在地预缴增值税
  • 运输费发票备注栏没备注
  • 企业搬迁到外省之前的债务怎么处理
  • 个人股东之间股权转让的溢价账务处理
  • 购买折让
  • 固定资产没收到发票收到实物入账有什么风险
  • 设备款支付比例
  • 旅游业差额开票的票据可以累计一季度吗
  • 现金出资可以吗
  • 税控盘清盘怎么做
  • 增值税发票提示文件不匹配
  • 关联关系案例
  • 关税减免有哪些类型?
  • 劳务费按次500元
  • 个人独资企业生活费用和经营费用混在一起的
  • 房产契税怎样交费
  • 半成品加工费计入什么科目
  • 模具成本怎么核算
  • 喀拉拉邦地理位置
  • wordpress采集教程
  • php中的类型提示是什么
  • 股权变更怎么缴纳个人所得税
  • php中imagecreatefromjpeg
  • vue项目部署到服务器上,页面空白
  • vue项目创建流程
  • 模拟电子技术基础知识点总结
  • 购买超市购物卡会计分录
  • 外贸企业出口免税政策
  • 个人出租租房交什么税
  • 铁路运输企业受托代征 印花税
  • python中lambda用法
  • 公司采购不含税产品合法吗
  • 专利年费可以做研发费用吗
  • 民办非企业免税政策
  • sql 附加数据库
  • 企业长期股权投资增加说明什么
  • 小型微利企业认定标准最新
  • 固定资产基本特点
  • 高企数据造假
  • 房地产采取按揭销售的,其销售的入账时间为
  • 残保金是第二年交前一年的吗
  • 差额征税问题
  • 电力安装工程合同税率能开13%
  • 管理费用记错了跨年了怎么调整
  • 新会计准则报表模板
  • 公司赠送客户礼品怎么做账
  • 三栏式明细账适用于总分类账
  • 期末自动结转期间损益
  • mysql安装与配置详细教程
  • 怎么防止win10
  • java开发经常出差合理吗
  • 运维zabbix
  • DxDebugService.exe是什么进程 DxDebugService进程安全吗
  • win8系统分辨率调不了
  • vs图片简单
  • windows8.1关闭开机密码
  • ubuntu怎么安装程序
  • android开发环境配置
  • perl uc,lc,ucfirst,lcfirst大小写转换函数
  • 学dos有用吗
  • 常用dos命令详解
  • cocos2dx4.0教程
  • javascript中math.ceil
  • [android] listView解析
  • wpf 设置鼠标样式
  • jquery控制css样式
  • python的对象
  • Python的collections模块中namedtuple结构使用示例
  • 税务数字证书密码修改失败
  • 国税地税什么时候申报
  • 个人股权转让是否增值了怎么判断
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设