# 以下sql可能性能不是很好,但用到了很多sql知识(备忘):
1. insert..select 批量导入数据。
2. SPP_BOOKING_SEQ.nextval 序列的使用。
3. group by & order by 二者同时使用时,order by后的排序字段需要出现在select中。
4. (+)所在位置的另一侧为连接的方向,右连接说明等号右侧的所有记录均会被显示,无论其在左侧是否得到匹配。
5. nvl去空函数。
6. sum, min, group by 使用多个聚合函数。
sql1:
insert into pexweb.spp_supp_search_result_stg (spp_kw_cat_id, spp_kw_cat_desc, spp_kw_cat_type, last_1_mth_search_cnt, last_3_mth_search_cnt, last_12_mth_search_cnt, refresh_date) select SPP_SUPP_SEARCH_RESULT_SEQ.nextval, spp_keyword, 'keyword', last_1_mth_search_cnt, last_3_mth_search_cnt, last_12_mth_search_cnt, sysdate from (select * from (select distinct (c.spp_keyword), 'keyword', nvl(a.last_1_mth_search_cnt, 0) last_1_mth_search_cnt, nvl(b.last_3_mth_search_cnt, 0) last_3_mth_search_cnt, c.last_12_mth_search_cnt, c.earliest_search_mth, sysdate from (select spp_keyword, sum(search_cnt) last_1_mth_search_cnt from spp_keyword_search_detail where search_mth between (select to_number(to_char(sysdate - interval '1' month, 'yyyymm')) from dual) and (select to_number(to_char(sysdate, 'yyyymm')) from dual) group by spp_keyword) a, (select spp_keyword, sum(search_cnt) last_3_mth_search_cnt from spp_keyword_search_detail where search_mth between (select to_number(to_char(sysdate - interval '3' month, 'yyyymm')) from dual) and (select to_number(to_char(sysdate, 'yyyymm')) from dual) group by spp_keyword) b, (select spp_keyword, sum(search_cnt) last_12_mth_search_cnt, min(search_mth) earliest_search_mth from spp_keyword_search_detail where search_mth between (select to_number(to_char(sysdate - interval '12' month, 'yyyymm')) from dual) and (select to_number(to_char(sysdate, 'yyyymm')) from dual) group by spp_keyword) c where a.spp_keyword(+) = c.spp_keyword and b.spp_keyword(+) = c.spp_keyword) d order by last_12_mth_search_cnt desc, earliest_search_mth desc) where rownum <= 200000
sql2: 子查询
左连接:左边字段全部会出现
select a.product_id "productId", a.folder_id "folderId", a.model_number "modelNumber", a.short_desc "shortDesc", a.category_desc "categoryDesc", nvl2(b.id, 'ON', 'OFF') onlineStatus from (select f.* from folder_product f where f.folder_id in (6000000094184, 6000000326795) and (posting_status is null or posting_status in ('Online', 'Offline')) and model_number like '%nov%') a left join (select distinct id from product_val_entity p1 where attr_name = 'OnlineProduct' and exists (select 1 from product_val_code where attr_name = 'WebsiteType' and value = 'GSOL' and id = p1.value)) b on a.product_id = b.id
sql3: 公用的部分先准备好
with temp_data as ( select id from product_val_entity pve where exists (select 1 from product_val_code where attr_name = 'Status' and value = 'ON' and id = pve.id) and exists (select 1 from product_val_code where attr_name = 'WebsiteType' and value = 'GSOL' and id = pve.id) and exists (select 1 from product_val_entity where attr_name = 'Contract' and value = '2508813011239' and id = pve.id) ) select a.pdfSpecSheet, b.additionalProduct, c.additionalImages from (select count(*) pdfSpecSheet from product_val_entity pve where attr_name = 'Supplier' and value = '2008808594470' and exists (select 1 from product_val_attachment where attr_name = 'SpecFile' and id = pve.id) and exists (select 1 from temp_data where id = pve.id)) a, (select count(*) additionalProduct from product_val_entity pve where attr_name = 'Supplier' and value = '2008808594470' and exists (select 1 from product_val_group where attr_name = 'ImageGroup' and id = pve.id) and exists (select 1 from temp_data where id = pve.id)) b, (select count(*) additionalImages from product_val_group pve where attr_name = 'ImageGroup' and exists (select 1 from product_val_entity pve where attr_name = 'Supplier' and value = '2008814022300' and id = pve.id) and exists (select 1 from temp_data where id = pve.id)) c
相关推荐
本资源“经典SQL语句大全”提供了丰富的SQL语法示例,涵盖了Java或C#等编程语言在实际开发中与数据库交互时可能会用到的各种SQL语句。 首先,我们来探讨SQL的基础部分。SQL语句主要分为四大类别:SELECT(查询),...
在"淘淘"项目中,SQL语句可能被用来执行以下关键任务: 1. 数据库设计:SQL可以用于创建数据库结构,包括表、视图、索引等。例如,`CREATE TABLE`语句用于定义表格的字段和约束,`CREATE VIEW`用于创建虚拟表,`...
本项目提供了一个Java源码工具,能够帮助用户便捷地将Oracle SQL语句转换为MySQL SQL语句。 Oracle SQL与MySQL SQL的主要差异在于以下几个方面: 1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在...
"标签"进一步强调了这个工具的关键特性,包括"Java输出漂亮的SQL语句",这意味着它是一个Java环境下的解决方案,能够集成到Java项目中,通过Java代码来调用和实现SQL语句的格式化。另一个标签"SQL格式化"则明确了它...
这可能是一个函数或脚本,用于提取SQL语句中的表名,从而构建血缘关系图谱。 7. **实现步骤**: - 读取SQL语句。 - 使用解析库或自行编写的解析算法来分解SQL语句。 - 分析FROM、JOIN、INSERT、UPDATE、DELETE等...
在开发数据库应用程序时,SQL语句是至关重要的工具,用于查询、插入、更新和删除数据库中的数据。本文将深入探讨SQL语句命令及其在数据库操作中的应用,特别是使用ADO.NET框架进行数据库交互。 首先,我们需要了解...
自己写的SQL语句 最近公司里面做报表就写了点 也许对大家有点点帮助。O(∩_∩)O谢谢
### Delphi中SQL语句的使用总结 在Delphi中使用SQL语句是与数据库进行交互的重要手段之一。本文将详细介绍如何在Delphi环境中构造和执行SQL查询,并给出具体的示例来帮助理解。 #### 一、基本SQL查询的构建 在...
在实际项目中,SQL脚本文件(如"SQL语句.sql")可能包含初始化数据库、填充测试数据或执行复杂数据转换的命令。 总之,掌握SQL是IT专业人士必备的技能,无论是在JavaWeb开发还是其他数据库相关的领域,SQL都是不可...
本文将深入探讨如何在C#中自动生成SQL语句,以提高开发效率并减少手动编写SQL可能导致的错误。 一、Entity Framework与自动SQL生成 1. Entity Framework(EF)是微软提供的一个开源ORM(对象关系映射)框架,它...
小区物业管理系统配套数据库SQL语句,在Oracle中导入该SQL语句,数据库建立成功
为了解决这个问题,出现了SQL语句拼接工具,如描述中提到的,它能帮助简化SQL语句的拼写代码,提高开发效率。 标题中的“SQL语句拼接工具”是指一种软件开发辅助工具,它的主要功能是自动化生成SQL语句,特别是在...
本主题将探讨如何在C#中进行不写SQL语句的数据库操作,实现对数据的增删改查功能。 首先,我们可以利用ORM(Object-Relational Mapping)框架来避免直接编写SQL。ORM框架允许开发者用面向对象的方式来操作数据库,...
在易语言中,编写SQL语句与在其他编程语言中的方式有所不同,因为它提供了专门的数据库模块来支持SQL操作。 二、动态拼接原理 动态拼接SQL语句的主要目的是为了提高程序的灵活性,使得可以根据不同的条件或参数...
它能够解析SQL语句,并自动生成对应的C#代码,这样开发者就可以在C#程序中直接调用这些方法,而不是手动编写SQL字符串。这种方式不仅减少了手写代码的时间,还降低了因人为错误导致的潜在问题。 例如,一个SQL ...
嵌入式SQL语句在VC++数据库系统开发中扮演着重要的角色,它允许开发者将SQL命令直接嵌入到C++程序中,实现高效且灵活的数据处理。本文将深入探讨嵌入式SQL的概念、构建方法以及在VC++环境下的具体应用。 嵌入式SQL...
在提供的压缩包文件“实例81 SQL语句嵌套”中,很可能是包含了具体的源码示例,这些示例可以帮助初学者更直观地理解如何在VC++项目中编写和使用嵌套SQL语句。通过学习和实践这些示例,你将能更好地掌握这一技巧,...
SQL语句格式化工具是一种非常实用的软件,主要用于帮助程序员和数据库管理员整理和美化他们的SQL代码,使其更易于阅读和维护。在SQL Server等数据库管理系统中,编写和修改SQL脚本是日常工作中不可或缺的一部分,而...
在日常工作中,我们经常需要根据业务需求创建对应的数据库结构,这通常涉及到编写SQL语句来定义表的结构。在大型项目中,这种工作量可能会非常大,因此,自动化工具的使用可以显著提高效率。本主题将深入探讨如何...
### C#中SQL语句调用详解 在.NET框架中,使用C#语言与SQL Server进行交互是非常常见的操作。本文将详细介绍如何在C#应用程序中编写SQL语句,并通过ADO.NET来执行这些语句。 #### ADO.NET简介 ADO.NET(ActiveX ...