说明:收录25万 73个行业的国家标准 支持批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210923624.5 (22)申请日 2022.08.02 (71)申请人 北京奥星贝斯科技有限公司 地址 100102 北京市朝阳区望京东园四区 13号楼-4至 33层101内23层201室 (72)发明人 朱涛 王国平  (74)专利代理 机构 北京亿腾知识产权代理事务 所(普通合伙) 11309 专利代理师 张明 周良玉 (51)Int.Cl. G06F 16/242(2019.01) G06F 16/2453(2019.01) G06F 16/2455(2019.01) (54)发明名称 SQL语句的处 理方法及装置 (57)摘要 本说明书实施例提供一种SQL语句的处理方 法及装置, 在处理方法中, 获取待处理的原始SQL 语句, 其中包括主查询语句和子查询语句。 该主 查询语句和子查询语句各自的查询源表子句分 别包括第一数据表和第二数据表; 主查询语句的 主查询条件子句包括, 依赖于子查询语句的子查 询结果的目标查询条件。 判断目标查询条件是否 支持子查询结果为空; 根据判断结果, 对原始SQL 语句进行等价改写, 得到目标SQL语句。 该目标 SQL语句用于基于第一和第二数据表的内连接结 果集或外连接结果 集进行查询。 权利要求书4页 说明书14页 附图2页 CN 115292350 A 2022.11.04 CN 115292350 A 1.一种SQ L语句的处 理方法, 包括: 获取待处理的原始SQL语句, 其中包括主查询语句和子查询语句; 所述主查询语句的主 查询源表子句包括第一数据表, 所述子查询语句的子查询源表子句包括第二数据表; 所述 主查询语句的主查询条件子句包括, 依赖于所述子查询语句的子查询结果的目标查询条 件; 判断所述目标查询条件是否支持所述子查询结果 为空; 根据判断结果, 对所述原始SQL语句进行等价改写, 得到目标SQL语句; 所述目标SQL语 句用于基于所述第一和第二数据表的内连接结果 集或外连接结果 集进行查询。 2.根据权利要求1所述的方法, 其中, 所述根据判断结果, 对所述原始SQL语句进行等价 改写, 包括: 若所述判断结果指示, 所述目标查询条件不支持所述子查询结果为空, 则将所述原始 SQL语句等价改写为第一目标SQL语句, 用于基于所述第一和第二数据 表的内连接结果集进 行查询。 3.根据权利 要求2所述的方法, 其中, 所述将所述原始SQL语句等价改写为第一目标SQL 语句, 包括: 将所述第二数据表添加到所述主查询源表子句中; 将所述子查询语句的子查询条件子句中的查询条件, 添加到所述主查询条件子句中; 将所述子查询语句, 替换为所述子查询语句的子查询选择子句中的子查询表达式。 4.根据权利要求2所述的方法, 其中, 所述子查询语句的子查询选择子句包括自定义函 数, 用于根据所述子查询结果的行数输出是否异常的指示值; 所述 目标查询条件包括自定 义表达式, 用于在所述指示 值指示异常时输出报错信息; 所述将所述原 始SQL语句等价改写为第一目标SQ L语句, 包括: 将所述第二数据表添加到所述主查询源表子句中; 将所述子查询语句的子查询条件子句中的查询条件, 添加到所述主查询条件子句中; 在所述主查询语句中包 含所述自定义 函数和自定义表达式。 5.根据权利要求4所述的方法, 其中, 所述自定义函数的输入变量为子查询表达式; 所 述自定义表达式的输入变量 为所述子查询语句; 所述在所述主查询语句中包 含所述自定义 函数和自定义表达式, 包括: 为所述主查询语句添加分组子句及其对应的分组过滤子句, 并将分组子句中的分组列 设定为所述第一数据表中满足唯一 性约束的属性列; 将所述目标查询条件移动到所述分组过 滤子句中; 用所述自定义函数, 替换所述自定义表达式的输入变量, 并用得到的中间表达式替换 所述子查询语句。 6.根据权利要求1所述的方法, 其中, 所述根据判断结果, 对所述原始SQL语句进行等价 改写, 包括: 若所述判断结果指示, 所述目标查询条件支持所述子查询结果为空, 则将所述原始SQL 语句等价改写为第二 目标SQL语句, 用于基于所述第一和第二数据表的外连接结果集进行 查询。 7.根据权利 要求6所述的方法, 其中, 所述将所述原始SQL语句等价改写为第二目标SQL权 利 要 求 书 1/4 页 2 CN 115292350 A 2语句, 包括: 将所述第二数据表作为外连接的右 表, 添加到所述主查询源表子句中; 将所述子查询语句的子查询条件子句中的查询条件, 作为所述外连接的连接条件添加 到所述主查询源表子句中; 基于所述第 二数据表中满足非空约束的属性列, 以及所述子查询语句的子查询选择子 句中的子查询表达式, 构造第一条件 控制语句, 并用其 替换所述子查询语句。 8.根据权利要求7 所述的方法, 其中, 所述构造第一条件 控制语句, 包括: 通过将所述满足非空约束的属性列的取值作为判断条件, 并将所述子查询表达 式的值 和空值, 分别作为对应于 两个判断结果的两个返回值, 构造所述第一条件 控制语句。 9.根据权利要求6所述的方法, 其中, 所述子查询语句的子查询选择子句包括自定义函 数, 用于根据所述子查询结果的行数输出是否异常的指示值; 所述 目标查询条件包括自定 义表达式, 用于在所述指示 值指示异常时输出报错信息; 所述将所述原 始SQL语句等价改写为第二目标SQ L语句, 包括: 将所述第二数据表作为外连接的右 表, 添加到所述主查询源表子句中; 将所述子查询语句的子查询条件子句中的查询条件, 作为所述外连接的连接条件添加 到所述主查询源表子句中; 在所述主查询语句中包 含所述自定义 函数和自定义表达式。 10.根据权利要求9所述的方法, 其中, 所述自定义函数的输入变量为子查询表达 式; 所 述自定义表达式的输入变量 为所述子查询语句; 所述在所述主查询语句中包 含所述自定义 函数和自定义表达式, 包括: 为所述主查询语句添加分组子句及其对应的分组过滤子句, 将所述分组子句中的分组 列设定为所述第一数据表中满足唯一 性约束的属性列; 将所述目标查询条件移动到所述分组过 滤子句中; 基于所述第二数据表中满足非空约束的属性列, 以及所述自定义函数和自定义表达 式, 构造第二条件 控制语句, 并用其 替换所述子查询语句。 11.根据权利要求10所述的方法, 其中, 所述构造第二条件 控制语句, 包括; 用所述自定义 函数替换 所述自定义表达式的输入变量, 得到中间表达式; 通过将所述满足非空约束的属性列的取值作为判断条件, 并将所述中间表达式的值和 空值, 分别作为对应于 两个判断结果的两个返回值, 构造所述第二条件 控制语句。 12.根据权利要求1所述的方法, 还 包括: 向查询优化器发送所述目标SQL语句, 以使得所述查询优化器基于所述目标SQL语句, 制定目标查询计划。 13.根据权利要求1所述的方法, 其中, 所述方法通过查询优化器执行; 所述方法还包 括: 基于所述目标SQ L语句, 制定目标查询计划。 14.根据权利要求1所述的方法, 其中, 所述目标查询条件不属于预定类型的查询条件; 所述预定类型的查询条件包含以下过滤词中的任一种: IN、 NOT  IN、 ANY、 ALL、 EXISTS和NOT   EXISTS。 15.一种SQ L语句的处 理装置, 包括:权 利 要 求 书 2/4 页 3 CN 115292350 A 3

.PDF文档 专利 SQL语句的处理方法及装置

文档预览
中文文档 21 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共21页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 SQL语句的处理方法及装置 第 1 页 专利 SQL语句的处理方法及装置 第 2 页 专利 SQL语句的处理方法及装置 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 17:14:06上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。