【技术实现步骤摘要】
一种子查询处理方法、装置、设备及存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种子查询处理方法、装置、设备及存储介质。
技术介绍
结构化查询语言(StructuredQueryLanguage,简称SQL)是一种数据库编程语言,用于存储数据、查询、更新和管理关系型数据库系统。一条查询语句由SELECT、FROM、WHERE等多部分组成,当一条查询语句嵌套在另一条查询语句的组成部分中时,称之为子查询(简称子SQL)。子查询分为非相关子查询和相关子查询两种。非相关子查询与外层查询没有任何关系,是可以独立执行的SQL语句;只执行一次,执行完成后将结果传递给外层查询。相关子查询依赖于外层查询的某些字段;其执行依赖于外层查询的结果集,外层查询一行传递给子查询执行一次。相关子查询的执行逻辑一般如下:1)从外层查询中取出一行元组,将元组中被子查询引用的字段传递给子查询;2)执行子查询,获取子查询执行结果,并将结果传递给外层查询;3)执行外层查询,获取满足条件的执行结果;4)外层查询取出 ...
【技术保护点】
1.一种子查询处理方法,其特征在于,包括:/n若当前子查询为相关子查询,则获取引用外层查询对象的列定义的数据类型;/n若所述数据类型为预设数据类型,则将所述当前子查询所属布尔表达式或者查询表达式转换为临时命名函数。/n
【技术特征摘要】
1.一种子查询处理方法,其特征在于,包括:
若当前子查询为相关子查询,则获取引用外层查询对象的列定义的数据类型;
若所述数据类型为预设数据类型,则将所述当前子查询所属布尔表达式或者查询表达式转换为临时命名函数。
2.根据权利要求1所述的方法,其特征在于,在获取引用外层查询对象的列定义的数据类型之前,还包括:
获取引用外层查询对象的列;
若所述数据类型为预设数据类型,则将所述当前子查询所属布尔表达式或者查询表达式转换为临时命名函数之后,还包括:
获取所述当前子查询对应的原始语句;
将所述原始语句中所述当前子查询所在的位置改写为临时命名函数的调用,其中,所述调用函数对应的调用参数为所述当前子查询引用外层查询对象的列。
3.根据权利要求1所述的方法,其特征在于,若当前子查询为相关子查询,则获取引用外层查询对象的列定义的数据类型包括:
判断当前子查询是否引用外层查询对象的列;
若所述当前子查询引用外层查询对象的列,则所述当前子查询为相关子查询;
获取引用外层查询对象的列定义的数据类型。
4.根据权利要求1所述的方法,其特征在于,将所述当前子查询所属查询表达式转换为临时命名函数包括:
若所述当前子查询属于查询表达式,则根据所述当前子查询中引用外层查询列的个数和数据类型确定临时命名函数对应参数的个数和数据类型,其中,所述临时命名函数每一个参数对应一个引用外层查询对象的列,所述临时命名函数的定义体为赋值子句。
5.根据权利要求1所述的方法,其特征在于,将所述当前子查询所属布尔表达式转换为临时命名函数包括:
若所述当前子查询属于布尔表达式,则根据所述当前子查询所属布尔表达式中引用外层查...
【专利技术属性】
技术研发人员:朱仲颖,望声宜,韩朱忠,
申请(专利权)人:上海达梦数据库有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。