CN112115159A - 一种sql语句的生成方法、装置、电子设备和存储介质 - Google Patents
一种sql语句的生成方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112115159A CN112115159A CN202011044077.0A CN202011044077A CN112115159A CN 112115159 A CN112115159 A CN 112115159A CN 202011044077 A CN202011044077 A CN 202011044077A CN 112115159 A CN112115159 A CN 112115159A
- Authority
- CN
- China
- Prior art keywords
- sample
- target
- dimensions
- dimension
- character string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种SQL语句的生成方法和装置,其中,所述方法包括:获取维度配置文件和SQL模板文件,维度配置文件包含待生成的目标SQL语句对应的一个或多个样本维度,SQL模板文件中的模板维度表示为预设的占位标识;根据样本维度的数量和预设的筛选规则从样本维度中筛选出目标维度;利用目标维度替换SQL模板文件中的占位标识,生成目标SQL语句。本发明实施例不需要手动编写SQL语句,可以在确定样本维度和SQL模板文件的情况下,基于筛选规则筛选出目标维度,将SQL模板文件中的占位标识替换为目标维度,得到针对目标维度的目标SQL语句,实现了SQL语句生成的自动化,提升了SQL语句的生成效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种结构化查询语言(StructuredQuery Language,简称SQL)语句的生成方法和装置,以及一种电子设备和一种计算机可读存储介质。
背景技术
随着大数据时代的到来,数据分析变得越来越重要,通常,数据分析需要在大量的数据中检索出满足不同维度的目标数据,进而对目标数据进行比对、统计等处理得到最终的数据分析结果。
目前,大部分的数据分析需要先确定检索所对应的维度,然后采用手动编写SQL语句的方式进行数据检索。如果维度太多,需要针对不同维度的多种组合,分别编写不同的SQL语句以进行数据检索,因此,存在大量的SQL语句编写工作,从而导致SQL语句的生成效率较低。
发明内容
本发明实施例的目的在于提供一种SQL语句的生成方法和装置,以及一种电子设备和一种计算机可读存储介质,可以根据维度配置文件和SQL模板文件,自动生成目标SQL语句,提升了SQL语句的生成效率。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种SQL语句的生成方法,包括:获取维度配置文件和SQL模板文件,所述维度配置文件包含待生成的目标SQL语句对应的一个或多个样本维度,所述SQL模板文件中的模板维度表示为预设的占位标识;根据所述样本维度的数量和预设的筛选规则,从所述样本维度中筛选出目标维度;利用所述目标维度替换所述SQL模板文件中的占位标识,生成所述目标SQL语句。
可选地,所述根据所述样本维度的数量和预设的筛选规则,从所述样本维度中筛选出目标维度,包括:将所述样本维度存储至第一集合,并获取所述样本维度在所述第一集合中的样本位置信息;根据所述样本维度的数量生成所述样本维度作为所述目标维度的组合,所述组合中存储有表示作为所述目标维度的所述样本维度的数量的十进制样本字符串;将各所述十进制样本字符串分别转换为对应的二进制样本字符串,所述二进制样本字符串的长度与所述样本维度的数量相同;根据所述二进制样本字符串和所述样本位置信息,从所述样本维度中筛选出所述目标维度。
可选地,所述根据所述样本维度的数量生成所述样本维度作为所述目标维度的组合,包括:根据如下公式生成所述样本维度均作为所述目标维度的最大值:M=2n,其中,M表示所述最大值,n表示所述样本维度的数量;将大于或等于预设第一数值,且小于所述最大值之间的整数作为所述组合。
可选地,所述将各所述十进制样本字符串分别转换为对应的二进制样本字符串,包括:将各所述十进制样本字符串分别由十进制转换为二进制,得到过渡字符串,所述过渡字符串的长度等于所述样本维度的数量;将所述过渡字符串进行逆序,得到所述二进制样本字符串。
可选地,所述将各所述十进制样本字符串分别由十进制转换为二进制,得到过渡字符串,包括:将各所述十进制样本字符串分别由十进制转换为二进制,得到临时字符串;若所述临时字符串的长度等于所述样本维度的数量,则将所述临时字符串作为所述过渡字符串;若所述临时字符串的长度小于所述样本维度的数量,则在所述临时字符串的左侧补充一个或多个预设第二数值,得到所述过渡字符串。
可选地,所述根据所述二进制样本字符串和所述样本位置信息,从所述样本维度中筛选出所述目标维度,包括:识别出各所述二进制样本字符串中目标字符,并获取所述目标字符在所属的所述二进制样本字符串中的目标位置信息;选择与所述目标位置信息对应的所述样本位置信息,将选择的所述样本位置信息对应的所述样本维度作为所述目标维度。
可选地,所述将选择的所述样本位置信息对应的所述样本维度作为所述目标维度,包括:若选择的所述样本位置信息的所述样本维度为多个,则将选择的多个所述样本维度拼接为所述目标维度。
在本发明实施的第二方面,还提供了一种SQL语句的生成装置,包括:获取模块,用于获取维度配置文件和SQL模板文件,所述维度配置文件包含待生成的目标SQL语句对应的一个或多个样本维度,所述SQL模板文件中的模板维度表示为预设的占位标识;筛选模块,用于根据所述样本维度的数量和预设的筛选规则,从所述样本维度中筛选出目标维度;生成模块,用于利用所述目标维度替换所述SQL模板文件中的占位标识,生成所述目标SQL语句。
可选地,所述筛选模块,包括:维度存储模块,用于将所述样本维度存储至第一集合,并获取所述样本维度在所述第一集合中的样本位置信息;组合生成模块,用于根据所述样本维度的数量生成所述样本维度作为所述目标维度的组合,所述组合中存储有表示作为所述目标维度的所述样本维度的数量的十进制样本字符串;字符转换模块,用于将各所述十进制样本字符串分别转换为对应的二进制样本字符串,所述二进制样本字符串的长度与所述样本维度的数量相同;维度筛选模块,用于根据所述二进制样本字符串和所述样本位置信息,从所述样本维度中筛选出所述目标维度。
可选地,所述组合生成模块,用于根据如下公式生成所述样本维度均作为所述目标维度的最大值:M=2n,其中,M表示所述最大值,n表示所述样本维度的数量;将大于或等于预设第一数值,且小于所述最大值之间的整数作为所述组合。
可选地,所述字符转换模块,用于将各所述十进制样本字符串分别由十进制转换为二进制,得到过渡字符串,所述过渡字符串的长度等于所述样本维度的数量;将所述过渡字符串进行逆序,得到所述二进制样本字符串。
可选地,所述字符转换模块,用于将各所述十进制样本字符串分别由十进制转换为二进制,得到临时字符串;若所述临时字符串的长度等于所述样本维度的数量,则将所述临时字符串作为所述过渡字符串;若所述临时字符串的长度小于所述样本维度的数量,则在所述临时字符串的左侧补充一个或多个预设第二数值,得到所述过渡字符串。
可选地,所述维度筛选模块,用于识别出各所述二进制样本字符串中目标字符,并获取所述目标字符在所属的所述二进制样本字符串中的目标位置信息;选择与所述目标位置信息对应的所述样本位置信息,将选择的所述样本位置信息对应的所述样本维度作为所述目标维度。
可选地,所述维度筛选模块,用于在选择的所述样本位置信息的所述样本维度为多个时,将选择的多个所述样本维度拼接为所述目标维度。
在本发明实施的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现如第一方面所述的SQL语句的生成方法。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的SQL语句的生成方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的SQL语句的生成方法。
本发明实施例提供的SQL语句的生成方法,获取维度配置文件和SQL模板文件,该维度配置文件可以包含待生成的目标SQL语句对应的一个或多个样本维度,该SQL模板文件中的模板维度可以表示为预设的占位标识。然后,根据样本维度的数量和预设的筛选规则,从样本维度中筛选出目标维度,进而,利用目标维度替换SQL模板文件中的占位标识,生成目标SQL语句。本发明实施例不需要手动编写SQL语句,可以在确定样本维度和SQL模板文件的情况下,基于筛选规则筛选出目标维度,将SQL模板文件中的占位标识替换为目标维度,得到针对目标维度的目标SQL语句,实现了SQL语句生成的自动化,提升了SQL语句的生成效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例的一种SQL语句的生成方法的步骤流程图。
图2为本发明实施例的从样本维度中筛选出目标维度的步骤示意图。
图3为本发明实施例的一种多维度的SQL语句生成方法的流程示意图。
图4为本发明实施例的一种SQL语句的生成装置的结构示意图。
图5为本发明实施例的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明实施例提出一种SQL语句的生成方法,可以利用已经设定的样本维度和SQL模板文件,快速生成针对不同的目标维度的目标SQL语句。其中,已经设定的样本维度在生成目标SQL语句的过程中包含两种状态,一种状态是作为目标维度,另一种状态是不作为目标维度,而且,目标维度可以为单个样本维度,也可以为多个样本维度的组合。如果样本维度的数量为n,n为正整数,则n个样本维度一共存在2n种情况作为目标维度。将[0,2n)范围内的十进制数分别转换为二进制数,并生成长度为n的二进制字符串,再将二进制字符串进行逆序反转操作,使得逆序反转后的二进制字符串中的1(1表示样本维度作为目标维度,0表示样本维度不作为目标维度)所在的位置与作为目标维度的样本维度所在的位置一一对应,然后从样本维度中筛选出与逆序反转后的二进制字符串中的1所在的位置对应的目标维度,利用目标维度替换SQL模板文件中的模板维度的占位标识,输出目标SQL语句。
如图1所示,示出了本发明实施例的一种SQL语句的生成方法的步骤流程图。该SQL语句的生成方法具体可以包括如下步骤。
步骤101,获取维度配置文件和SQL模板文件。
在本发明的实施例中,维度配置文件可以理解为存储有参与数据分析的维度的文件,维度即数据分析过程中用于数据检索的条件。在实际应用中,维度配置文件中可以包含待生成的目标SQL语句对应的一个或多个样本维度。如表1所示,在维度配置文件中可以包含四列,依次为序号、名称、简称、描述。每一行可以对应一个样本维度。维度配置文件可以为文本格式,各列之间可以用英文逗号分隔,各行之间可以用回车符分隔。
表1
SQL模板文件可以理解为数据分析中的通用SQL语句模板,通过用SQL语句模板中的维度可以称为模板维度,在SQL模板文件中,模板维度可以利用预设的占位标识表示,在实际应用中,占位标识可以为“placeholder”,本发明实施例对占位标识的内容、长度等不做具体限制。
步骤102,根据样本维度的数量和预设的筛选规则,从样本维度中筛选出目标维度。
在本发明的实施例中,可以根据样本维度的数量和预设的筛选规则,从样本维度中确定出作为目标维度的样本维度。预设的筛选规则可以基于样本维度的数量、十进制数、二进制字符串等进行逆序、比对等操作,后续将对步骤102进行进一步说明。
步骤103,利用目标维度替换SQL模板文件中的占位标识,生成目标SQL语句。
在本发明的实施例中,SQL模板文件可以为查询语句,例如:从基本数据表中查询模板维度表示为“placeholder”和字段内容为“bvv”的和值。在步骤102得到目标维度之后,可以将SQL模板文件中的“placeholder”替换为目标维度,具体可以将SQL模板文件中的“placeholder”替换为目标维度的名称,例如,将SQL模板文件中的“placeholder”替换为“Brand”。替换后的SQL语句即目标SQL语句。
本发明实施例提供的SQL语句的生成方法,获取维度配置文件和SQL模板文件,该维度配置文件可以包含待生成的目标SQL语句对应的一个或多个样本维度,该SQL模板文件中的模板维度可以表示为预设的占位标识。然后,根据样本维度的数量和预设的筛选规则,从样本维度中筛选出目标维度,进而,利用目标维度替换SQL模板文件中的占位标识,生成目标SQL语句。本发明实施例不需要手动编写SQL语句,可以在确定样本维度和SQL模板文件的情况下,基于筛选规则筛选出目标维度,将SQL模板文件中的占位标识替换为目标维度,得到针对目标维度的目标SQL语句,实现了SQL语句生成的自动化,提升了SQL语句的生成效率。
在本发明的一种示例性实施例中,如图2所示,上述步骤102的执行过程可以包括如下步骤:
步骤201,将样本维度存储至第一集合,并获取样本维度在第一集合中的样本位置信息。
如果存在n个样本维度,则将n个样本维度存储到第一集合中,第一集合的长度即样本维度的数量n。在实际应用中,如果n=3,则将3个样本维度Brand、Operators和Channel存储至第一集合C1,并记录每个样本维度在第一集合C1中的编号,如表2所示。
编号 | 0 | 1 | 2 |
样本维度 | Brand | Operators | Channel |
表2
每个样本维度在第一集合中的样本位置信息可以理解为样本维度在第一集合中的编号。
步骤202,根据样本维度的数量生成样本维度作为目标维度的组合,组合中存储有表示作为目标维度的样本维度的数量的十进制样本字符串。
由于样本维度可能作为目标维度,也可能不作为目标维度,因此,样本维度作为目标维度的组合可以为第一数值与2n形成的组合。在实际应用中,第一数值可以为0,即样本维度作为目标维度的组合为[0,2n)。当n=3时,该组合为[0,1,2,3,4,5,6,7]。
步骤203,将各十进制样本字符串分别转换为对应的二进制样本字符串。
将上述组合中的各十进制样本字符串分别由十进制转换为二进制,得到过渡字符串,过渡字符串的长度等于样本维度的数量,然后,将过渡字符串进行逆序得到二进制样本字符串,二进制样本字符串的长度与样本维度的数量相同。
在将十进制样本字符串转换得到过渡字符串的过程中,先将十进制样本字符串由十进制转换为二进制,得到临时字符串,若临时字符串的长度等于样本维度的数量,则将临时字符串作为过渡字符串;若临时字符串的长度小于样本维度的数量,则在临时字符串的左侧补充一个或多个预设第二数值,得到过的字符串。其中,预设第二数值可以为0。例如,如表3所示,示出了从十进制样本字符串得到二进制样本字符串的转换过程。
十进制样本字符串 | 临时字符串 | 过渡字符串 | 二进制样本字符串 |
0 | 0 | 000 | 000 |
1 | 1 | 001 | 100 |
2 | 10 | 010 | 010 |
3 | 11 | 011 | 110 |
4 | 100 | 100 | 001 |
5 | 101 | 101 | 101 |
6 | 110 | 110 | 011 |
7 | 111 | 111 | 111 |
表3
步骤204,根据二进制样本字符串和样本位置信息,从样本维度中筛选出目标维度。
在得到二进制样本字符串之后,识别出二进制样本字符串中的目标字符,其中,目标字符可以为“1”。即在上述每个二进制样本字符串中识别出“1”,并获取每个目标字符“1”在各自所属的二进制样本字符串中的目标位置信息。例如,以上述二进制样本字符串“100”为例,二进制样本字符串“100”中存在目标字符“1”,目标字符“1”在二进制样本字符串“100”中的目标位置信息为第一位。然后,选择第一集合中也位于第一位的样本维度,将位于第一集合中第一位的样本维度“Brand”作为目标维度。又例如,以上述二进制样本字符串“101”为例,二进制样本字符串“101”中存在目标字符“1”,目标字符“1”在二进制样本字符串“101”中的目标位置信息为第一位和第三位。然后,选择第一集合中也位于第一位和第三位的样本维度,将位于第一集合中第一位的样本维度“Brand”和位于第一集合中第三位的样本维度“Channel”作为目标维度。此时,存在两个样本维度作为目标维度,则可以将两个样本维度拼接为目标维度,例如,可以在两个样本维度之间增加逗号“,”,即拼接后得到的目标维度为“Brand,Channel”。
在本发明的一种示例性实施例中,以上述得到的目标维度为“Brand,Channel”为例进行说明,如果SQL模板文件中的占位标识为“placeholder”,则将SQL模板文件中的“placeholder”替换为“Brand,Channel”。
基于上述关于SQL语句的生成方法实施例的相关说明,下面介绍一种多维度的SQL语句生成方法。如图3所示,预先创建维度配置文件和SQL模板文件。其中,在创建维度配置文件时,可以将多个样本维度写入到维度配置文件,一行写入一个样本维度。SQL模板文件即通用的SQL查询语句,在SQL查询语句中,维度利用占位标识表示。读取维度配置文件,将维度配置文件中的样本维度存储至动态数组(ArrayList)集合中,该ArrayList集合表示为集合c1。集合c1的长度即集合c1中存储的样本维度的数量n。由于每个样本维度可能作为目标维度,也可能不作为目标维度,利用“1”表示样本维度作为目标维度,利用“0”表示样本维度不作为目标维度。n个样本维度一共存在2n种组合情况作为目标维度。以步长为1,遍历0至2n之间的数字,将包括0,但是不包括2n的组合存储至另一个ArrayList集合中,该ArrayList集合表示为集合c2。遍历集合c2中的每个数字,将每个数字由十进制转换为二进制,如果转换后的二进制字符串的长度不够n个,则在二进制字符串的左侧补充0,直至转化后的二进制字符串的长度等于n。然后,将长度为n的二进制字符串进行逆序反转得到新的二进制字符串,将新的二进制字符串存储至另一个ArrayList集合中,该ArrayList集合表示为集合c3。遍历集合c3中的每个新的二进制字符串,当新的二进制字符串中的字符为1时,记录字符1在新的二进制字符串中的位置,并从集合c1中提取出与字符1在新的二进制字符串中的位置相同的样本维度。如果新的二进制字符串中存在多个字符1,则在提取出的样本维度之间以英文逗号将多个样本维度拼接为一个整体。提取出的样本维度或者拼接的样本维度可以表示为字符串dim。然后,利用字符串dim替换SQL模板文件中的占位标识,生成目标SQL语句。维度配置文件中的多个样本维度可以按照多种方式拼接为字符串dim,相应地,可以生成针对多个样本维度的目标SQL语句。
本发明实施例在预先创建维度配置文件和SQL模板文件的基础之上,可以从维度配置文件筛选出目标维度,进而利用目标维度替换SQL模板文件中维度的占位标识,快速生成目标SQL语句,避免了开发人员手动针对不同的维度编写SQL语句,降低了开发人员的技术要求,提升了SQL语句的生成效率。
本发明实施例可以在维度配置文件中增加或删除样本维度,灵活地控制目标SQL语句的目标维度的内容、数量等,提升了SQL语句生成的自由度。
本发明实施例可以根据实际情况设定SQL模板文件,而且,可以针对不同的维度统一修改SQL模板文件,避免单独修改每个SQL语句,简化了SQL语句修改的复杂度。
如图4所示,示出了本发明实施例的一种SQL语句的生成装置的结构示意图。该SQL语句的生成装置可以包括如下模块。
获取模块41,用于获取维度配置文件和SQL模板文件,所述维度配置文件包含待生成的目标SQL语句对应的一个或多个样本维度,所述SQL模板文件中的模板维度表示为预设的占位标识;
筛选模块42,用于根据所述样本维度的数量和预设的筛选规则,从所述样本维度中筛选出目标维度;
生成模块43,用于利用所述目标维度替换所述SQL模板文件中的占位标识,生成所述目标SQL语句。
在本发明的一种示例性实施例中,所述筛选模块42,包括:
维度存储模块,用于将所述样本维度存储至第一集合,并获取所述样本维度在所述第一集合中的样本位置信息;
组合生成模块,用于根据所述样本维度的数量生成所述样本维度作为所述目标维度的组合,所述组合中存储有表示作为所述目标维度的所述样本维度的数量的十进制样本字符串;
字符转换模块,用于将各所述十进制样本字符串分别转换为对应的二进制样本字符串,所述二进制样本字符串的长度与所述样本维度的数量相同;
维度筛选模块,用于根据所述二进制样本字符串和所述样本位置信息,从所述样本维度中筛选出所述目标维度。
在本发明的一种示例性实施例中,所述组合生成模块,用于根据如下公式生成所述样本维度均作为所述目标维度的最大值:M=2n,其中,M表示所述最大值,n表示所述样本维度的数量;将大于或等于预设第一数值,且小于所述最大值之间的整数作为所述组合。
在本发明的一种示例性实施例中,所述字符转换模块,用于将各所述十进制样本字符串分别由十进制转换为二进制,得到过渡字符串,所述过渡字符串的长度等于所述样本维度的数量;将所述过渡字符串进行逆序,得到所述二进制样本字符串。
在本发明的一种示例性实施例中,所述字符转换模块,用于将各所述十进制样本字符串分别由十进制转换为二进制,得到临时字符串;若所述临时字符串的长度等于所述样本维度的数量,则将所述临时字符串作为所述过渡字符串;若所述临时字符串的长度小于所述样本维度的数量,则在所述临时字符串的左侧补充一个或多个预设第二数值,得到所述过渡字符串。
在本发明的一种示例性实施例中,所述维度筛选模块,用于识别出各所述二进制样本字符串中目标字符,并获取所述目标字符在所属的所述二进制样本字符串中的目标位置信息;选择与所述目标位置信息对应的所述样本位置信息,将选择的所述样本位置信息对应的所述样本维度作为所述目标维度。
在本发明的一种示例性实施例中,所述维度筛选模块,用于在选择的所述样本位置信息的所述样本维度为多个时,将选择的多个所述样本维度拼接为所述目标维度。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器51、通信接口52、存储器53和通信总线54,其中,处理器51,通信接口52,存储器53通过通信总线54完成相互间的通信,
存储器53,用于存放计算机程序;
处理器51,用于执行存储器53上所存放的程序时,实现如下步骤:
获取维度配置文件和SQL模板文件,所述维度配置文件包含待生成的目标SQL语句对应的一个或多个样本维度,所述SQL模板文件中的模板维度表示为预设的占位标识;根据所述样本维度的数量和预设的筛选规则,从所述样本维度中筛选出目标维度;利用所述目标维度替换所述SQL模板文件中的占位标识,生成所述目标SQL语句。
在所述根据所述样本维度的数量和预设的筛选规则,从所述样本维度中筛选出目标维度时,将所述样本维度存储至第一集合,并获取所述样本维度在所述第一集合中的样本位置信息;根据所述样本维度的数量生成所述样本维度作为所述目标维度的组合,所述组合中存储有表示作为所述目标维度的所述样本维度的数量的十进制样本字符串;将各所述十进制样本字符串分别转换为对应的二进制样本字符串,所述二进制样本字符串的长度与所述样本维度的数量相同;根据所述二进制样本字符串和所述样本位置信息,从所述样本维度中筛选出所述目标维度。
在所述根据所述样本维度的数量生成所述样本维度作为所述目标维度的组合时,根据如下公式生成所述样本维度均作为所述目标维度的最大值:M=2n,其中,M表示所述最大值,n表示所述样本维度的数量;将大于或等于预设第一数值,且小于所述最大值之间的整数作为所述组合。
在所述将各所述十进制样本字符串分别转换为对应的二进制样本字符串时,将各所述十进制样本字符串分别由十进制转换为二进制,得到过渡字符串,所述过渡字符串的长度等于所述样本维度的数量;将所述过渡字符串进行逆序,得到所述二进制样本字符串。
在所述将各所述十进制样本字符串分别由十进制转换为二进制,得到过渡字符串时,将各所述十进制样本字符串分别由十进制转换为二进制,得到临时字符串;若所述临时字符串的长度等于所述样本维度的数量,则将所述临时字符串作为所述过渡字符串;若所述临时字符串的长度小于所述样本维度的数量,则在所述临时字符串的左侧补充一个或多个预设第二数值,得到所述过渡字符串。
在所述根据所述二进制样本字符串和所述样本位置信息,从所述样本维度中筛选出所述目标维度时,识别出各所述二进制样本字符串中目标字符,并获取所述目标字符在所属的所述二进制样本字符串中的目标位置信息;选择与所述目标位置信息对应的所述样本位置信息,将选择的所述样本位置信息对应的所述样本维度作为所述目标维度。
在所述将选择的所述样本位置信息对应的所述样本维度作为所述目标维度时,若选择的所述样本位置信息的所述样本维度为多个,则将选择的多个所述样本维度拼接为所述目标维度。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的SQL语句的生成方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的SQL语句的生成方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种SQL语句的生成方法,其特征在于,包括:
获取维度配置文件和SQL模板文件,所述维度配置文件包含待生成的目标SQL语句对应的一个或多个样本维度,所述SQL模板文件中的模板维度表示为预设的占位标识;
根据所述样本维度的数量和预设的筛选规则,从所述样本维度中筛选出目标维度;
利用所述目标维度替换所述SQL模板文件中的占位标识,生成所述目标SQL语句。
2.根据权利要求1所述的方法,其特征在于,所述根据所述样本维度的数量和预设的筛选规则,从所述样本维度中筛选出目标维度,包括:
将所述样本维度存储至第一集合,并获取所述样本维度在所述第一集合中的样本位置信息;
根据所述样本维度的数量生成所述样本维度作为所述目标维度的组合,所述组合中存储有表示作为所述目标维度的所述样本维度的数量的十进制样本字符串;
将各所述十进制样本字符串分别转换为对应的二进制样本字符串,所述二进制样本字符串的长度与所述样本维度的数量相同;
根据所述二进制样本字符串和所述样本位置信息,从所述样本维度中筛选出所述目标维度。
3.根据权利要求2所述的方法,其特征在于,所述根据所述样本维度的数量生成所述样本维度作为所述目标维度的组合,包括:
根据如下公式生成所述样本维度均作为所述目标维度的最大值:
M=2n,其中,M表示所述最大值,n表示所述样本维度的数量;
将大于或等于预设第一数值,且小于所述最大值之间的整数作为所述组合。
4.根据权利要求2所述的方法,其特征在于,所述将各所述十进制样本字符串分别转换为对应的二进制样本字符串,包括:
将各所述十进制样本字符串分别由十进制转换为二进制,得到过渡字符串,所述过渡字符串的长度等于所述样本维度的数量;
将所述过渡字符串进行逆序,得到所述二进制样本字符串。
5.根据权利要求4所述的方法,其特征在于,所述将各所述十进制样本字符串分别由十进制转换为二进制,得到过渡字符串,包括:
将各所述十进制样本字符串分别由十进制转换为二进制,得到临时字符串;
若所述临时字符串的长度等于所述样本维度的数量,则将所述临时字符串作为所述过渡字符串;
若所述临时字符串的长度小于所述样本维度的数量,则在所述临时字符串的左侧补充一个或多个预设第二数值,得到所述过渡字符串。
6.根据权利要求2所述的方法,其特征在于,所述根据所述二进制样本字符串和所述样本位置信息,从所述样本维度中筛选出所述目标维度,包括:
识别出各所述二进制样本字符串中目标字符,并获取所述目标字符在所属的所述二进制样本字符串中的目标位置信息;
选择与所述目标位置信息对应的所述样本位置信息,将选择的所述样本位置信息对应的所述样本维度作为所述目标维度。
7.根据权利要求6所述的方法,其特征在于,所述将选择的所述样本位置信息对应的所述样本维度作为所述目标维度,包括:
若选择的所述样本位置信息的所述样本维度为多个,则将选择的多个所述样本维度拼接为所述目标维度。
8.一种SQL语句的生成装置,其特征在于,包括:
获取模块,用于获取维度配置文件和SQL模板文件,所述维度配置文件包含待生成的目标SQL语句对应的一个或多个样本维度,所述SQL模板文件中的模板维度表示为预设的占位标识;
筛选模块,用于根据所述样本维度的数量和预设的筛选规则,从所述样本维度中筛选出目标维度;
生成模块,用于利用所述目标维度替换所述SQL模板文件中的占位标识,生成所述目标SQL语句。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的SQL语句的生成方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的SQL语句的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011044077.0A CN112115159B (zh) | 2020-09-28 | 2020-09-28 | 一种sql语句的生成方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011044077.0A CN112115159B (zh) | 2020-09-28 | 2020-09-28 | 一种sql语句的生成方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112115159A true CN112115159A (zh) | 2020-12-22 |
CN112115159B CN112115159B (zh) | 2023-08-18 |
Family
ID=73797305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011044077.0A Active CN112115159B (zh) | 2020-09-28 | 2020-09-28 | 一种sql语句的生成方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112115159B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190422A (zh) * | 2021-03-22 | 2021-07-30 | 云和恩墨(北京)信息技术有限公司 | Sql语句的质量分析方法、装置、终端及介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000347910A (ja) * | 1999-06-03 | 2000-12-15 | Nec Soft Ltd | データベース処理システム,アクセス方法,sql変換方法および記憶媒体 |
US20050120014A1 (en) * | 2003-07-11 | 2005-06-02 | Deffler Tad A. | System and method for generating SQL using templates |
US20060106763A1 (en) * | 2004-11-12 | 2006-05-18 | Dirisala Siva K | Method and apparatus for facilitating a database query using a query criteria template |
US20120290620A1 (en) * | 2011-05-11 | 2012-11-15 | Mark Zhenguo Guan | Query Template Definition and Transformation |
CN106776809A (zh) * | 2016-11-24 | 2017-05-31 | 中国银联股份有限公司 | 一种数据查询方法及系统 |
US20180095962A1 (en) * | 2016-10-05 | 2018-04-05 | International Business Machines Corporation | Translation of natural language questions and requests to a structured query format |
CN108959631A (zh) * | 2018-07-24 | 2018-12-07 | 北京百度网讯科技有限公司 | 用于查询信息的方法和装置 |
US10452650B1 (en) * | 2016-09-08 | 2019-10-22 | Google Llc | Data querying |
CN111382171A (zh) * | 2018-12-28 | 2020-07-07 | 微软技术许可有限责任公司 | 支持自然语言分析问题的分析处理系统 |
CN111563094A (zh) * | 2020-03-31 | 2020-08-21 | 北京奇艺世纪科技有限公司 | 一种数据查询方法及装置、电子设备、计算机可读存储介质 |
-
2020
- 2020-09-28 CN CN202011044077.0A patent/CN112115159B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000347910A (ja) * | 1999-06-03 | 2000-12-15 | Nec Soft Ltd | データベース処理システム,アクセス方法,sql変換方法および記憶媒体 |
US20050120014A1 (en) * | 2003-07-11 | 2005-06-02 | Deffler Tad A. | System and method for generating SQL using templates |
US20060106763A1 (en) * | 2004-11-12 | 2006-05-18 | Dirisala Siva K | Method and apparatus for facilitating a database query using a query criteria template |
US20120290620A1 (en) * | 2011-05-11 | 2012-11-15 | Mark Zhenguo Guan | Query Template Definition and Transformation |
US10452650B1 (en) * | 2016-09-08 | 2019-10-22 | Google Llc | Data querying |
US20180095962A1 (en) * | 2016-10-05 | 2018-04-05 | International Business Machines Corporation | Translation of natural language questions and requests to a structured query format |
CN106776809A (zh) * | 2016-11-24 | 2017-05-31 | 中国银联股份有限公司 | 一种数据查询方法及系统 |
CN108959631A (zh) * | 2018-07-24 | 2018-12-07 | 北京百度网讯科技有限公司 | 用于查询信息的方法和装置 |
CN111382171A (zh) * | 2018-12-28 | 2020-07-07 | 微软技术许可有限责任公司 | 支持自然语言分析问题的分析处理系统 |
CN111563094A (zh) * | 2020-03-31 | 2020-08-21 | 北京奇艺世纪科技有限公司 | 一种数据查询方法及装置、电子设备、计算机可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190422A (zh) * | 2021-03-22 | 2021-07-30 | 云和恩墨(北京)信息技术有限公司 | Sql语句的质量分析方法、装置、终端及介质 |
CN113190422B (zh) * | 2021-03-22 | 2022-05-13 | 云和恩墨(北京)信息技术有限公司 | Sql语句的质量分析方法、装置、终端及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112115159B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112083897B (zh) | 一种数字逻辑设计中信号声明系统、方法、设备及介质 | |
CN113220782A (zh) | 多元测试数据源生成方法、装置、设备及介质 | |
CN114491172B (zh) | 树形结构节点的快速检索方法、装置、设备及存储介质 | |
CN111695330B (zh) | 生成表格的方法、装置、电子设备及计算机可读存储介质 | |
CN110795464B (zh) | 对象标记数据的字段校验方法、装置、终端及存储介质 | |
CN110597708A (zh) | 一种测试用例文件转换方法、装置、电子设备及存储介质 | |
CN111680472A (zh) | 表格数据处理方法、装置、计算机设备及可读存储介质 | |
CN109189688B (zh) | 一种测试用例脚本的生成方法、生成装置及电子设备 | |
CN112115159B (zh) | 一种sql语句的生成方法、装置、电子设备和存储介质 | |
CN114398315A (zh) | 一种数据存储方法、系统、存储介质及电子设备 | |
CN110569243B (zh) | 一种数据查询方法、数据查询插件和数据查询服务器 | |
CN116489251A (zh) | 通用码流解析方法、装置、计算机可读介质及终端设备 | |
CN110795915B (zh) | xml文件批量修改方法、系统、设备和计算机可读存储介质 | |
CN115757174A (zh) | 一种数据库的差异检测方法及装置 | |
CN111078905A (zh) | 一种数据处理方法、装置、介质以及设备 | |
CN111125483B (zh) | 网页数据抽取模板生成方法、装置、计算机装置及存储介质 | |
US8136064B2 (en) | Bijectively mapping character string to integer values in integrated circuit design data | |
CN113408250B (zh) | 一种项目文件的处理方法和装置 | |
CN112699253B (zh) | 源代码定位方法、系统、介质及装置 | |
CN113792048B (zh) | 非关系型数据库的表单校验规则生成方法和系统 | |
US20230266940A1 (en) | Semantic based ordinal sorting | |
CN117668075A (zh) | 一种数据元生成方法、装置、设备及存储介质 | |
CN116580138A (zh) | 一种工程图纸的解析方法及电子设备 | |
CN114595229A (zh) | 一种抽取表对象的方法及设备 | |
CN117421326A (zh) | 自动生成Python实体的方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |