`

oracle数据处理sql

阅读更多
--插入语句之不同表中相同字段的快捷插入
insert into z_nm_site_ent(site_ent_id,ent_name)  select site_ent_id,shop_name from z_nm_test

--这部分数据直接插入到主体和店铺中,但是需要关联上    且不在主体表中存在的
select *
  from Z_NM_SHOP_ALL a
where exists (select 1
          from (select count(1), shop_name
                  from Z_NM_SHOP_ALL
                 group by shop_name
                having(count(1) = 1))  b where a.shop_name=b.shop_name) and zc_name is null
               
-- 这部分数据是名称有重复的,所以主体只能插入一条  (查询name重复的数据条数)
select count(1),shop_name from  Z_NM_SHOP_ALL where   zc_name is null group by shop_name having(count(1)>1)
     --  需要把这些名称对应的店铺关联上
    
--- zc_name 不为空的
     select count(1),zc_name from  Z_NM_SHOP_ALL  where zc_name is not null   group by zc_name
      -- 同样把主体ID关联过来


--替换时间字段中的空字符
update z_nm_evment_all set EV_TIME=replace(EV_TIME,' ','')
where length(EV_TIME)>10 and EV_TIME like '% %' and length(EV_TIME)<12


--oracle判断
select case
when
length(EV_TIME)>10
then
to_date(EV_TIME,'yyyy-MM-dd hh24:mi:ss')




--拼接,没有日期的数据默认为某月1日
update  z_nm_evment_all set EV_TIME=EV_TIME || '/1'  where length(EV_TIME)=6


--查询指定字符串 在该字段中出现的次数
SELECT LENGTHB(TRANSLATE(EV_TIME,'/'|| EV_TIME,'/')) FROM z_nm_evment_all;

update z_nm_evment_all set  EV_TIME=EV_TIME || '/1' where LENGTHB(TRANSLATE(EV_TIME,'/'|| EV_TIME,'/'))!=2;


--评论插入sql

insert into z_nm_evaluation(EV_ID,SHOP_ID,EV_TIME,EV_USER,EV_CONTENT,IS_BAD,GOOD_ID)
select EV_ID,SHOP_ID,
case when
length(EV_TIME)>10
then
to_date(EV_TIME,'yyyy-MM-dd hh24:mi:ss')
else
to_date(EV_TIME,'yyyy-MM-dd')
end
,EV_USER,EV_CONTENT,IS_BAD,GOOD_ID from z_nm_evment_all


---两表关联 批量修改sql
update z_nm_site_ent a set a.ssgss=(select b.ssgss from z_nm_site_ent_info b where b.ent_name=a.ent_name and rownum =1)
where a.ent_name in (select b.ent_name from  z_nm_site_ent_info b)


修改同一张表中的重复数据, 把字段不为空的那一条数据字段 更新到字段为空的另一条数据字段中, z_nm_shop_id为重复数据的标识中间表(select shop_id from nm_shop group by shop_id having(count(1)>1) 例如重复数据的shop_id相同)

--修改店铺重复的数据字段,然后保留一条

update nm_shop w
   set w.ev_num =
       (select ev_num
          from nm_shop b
         where exists
         (select 1 from z_nm_shop_id h where h.shop_id = b.shop_id)
           and ev_num is not null
           and rownum = 1)
where w.ev_num is null
and exists (select 1 from z_nm_shop_id n where n.shop_id=w.shop_id)

---批量修改操作,并且只执行一条

update a_a_nm_shop_45 a  set a.type_code=
(select b.shop_sub_type from nm_shop_type b where a.shop_id=b.shop_id and rownum=1)






--删除重复
delete   from z_reg_bus_ent a
where rowid!=(select   max(rowid)   from z_reg_bus_ent b where a.ent_name=b.ent_name)

--查询时间段数据
select * from  nm_evaluation where to_char(to_date(ev_time),'yyyy-mm-dd')  like '%2017-04%'




--插入评论数据
insert into nm_evaluation
select ev_id, shop_id,to_date(ev_time,'yyyy-mm-dd'),ev_user,to_number(ev_num),ev_content,is_bad,add_time,ev_title,good_id from a_a_nm_evment_45



--统计评论量
select a.shop_id as 店铺编号,a.shop_name as 店铺名称,
a.platform_code as 平台编号,a.shop_address as 店铺地址 ,a.shop_url as url,
a.ev_num as 总评数量,a.bad_ev_num as 总差评数,
(select count(1) from nm_evaluation b where b.shop_id=a.shop_id and to_char(to_date(ev_time),'yyyy-mm-dd')  like '%2017-01%') as 啊1月总评论数,
(select count(1) from nm_evaluation b where b.shop_id=a.shop_id and b.is_bad='1' and to_char(to_date(ev_time),'yyyy-mm-dd')  like '%2017-01%') as 啊1月差评论数,
(select count(1) from nm_evaluation b where b.shop_id=a.shop_id and to_char(to_date(ev_time),'yyyy-mm-dd')  like '%2017-02%') as 啊2月总评论数,
(select count(1) from nm_evaluation b where b.shop_id=a.shop_id and b.is_bad='1' and to_char(to_date(ev_time),'yyyy-mm-dd')  like '%2017-02%') as 啊2月差评论数,
(select count(1) from nm_evaluation b where b.shop_id=a.shop_id and to_char(to_date(ev_time),'yyyy-mm-dd')  like '%2017-03%') as 啊3月总评论数,
(select count(1) from nm_evaluation b where b.shop_id=a.shop_id and b.is_bad='1' and to_char(to_date(ev_time),'yyyy-mm-dd')  like '%2017-03%') as 啊3月差评论数,
(select count(1) from nm_evaluation b where b.shop_id=a.shop_id and (to_char(to_date(ev_time),'yyyy-mm-dd')  like '%2017-04%' or to_char(to_date(ev_time),'yyyy-mm-dd')  like '%2017-05%' )) as 啊45月总评论数,
(select count(1) from nm_evaluation b where b.shop_id=a.shop_id and b.is_bad='1' and (to_char(to_date(ev_time),'yyyy-mm-dd')  like '%2017-04%' or to_char(to_date(ev_time),'yyyy-mm-dd')  like '%2017-05%' )) as 啊45月差评论数

from aa_nm_shop_1_5 a

分享到:
评论

相关推荐

    oracle 数据处理sql语句源码

    本资源包“oracle 数据处理sql语句源码”可能包含了这些关键元素的具体实现,为监测项目的数据处理提供了有效的工具。 首先,我们来看看“PROC”或存储过程。存储过程是预编译的SQL语句集合,它们可以作为一个单元...

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(一)

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(一) http://download.csdn.net/source/3268267 Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(二) ...

    高清完整版 Oracle 高性能SQL引擎剖析SQL优化与调优机制详解

    其高性能的SQL引擎是支撑复杂查询和大数据处理的关键。Oracle的SQL优化与调优机制复杂多样,涵盖了从SQL语句的编写、执行计划的选择、到资源管理的全方位调优方法。为了深入理解Oracle SQL优化与调优机制,需要掌握...

    实现ORACLE与SQLSERVER数据库间的数据抽取与转换工具

    在IT行业中,数据抽取、转换和加载(ETL)是数据仓库和大数据处理的重要环节。本文将探讨如何实现一个工具,用于在Oracle和SQL Server数据库之间进行数据的抽取与转换。Oracle是广受欢迎的关系型数据库管理系统,而...

    Oracle PL/SQL实战(待续)

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据处理能力与PL的程序设计特性,是Oracle数据库系统中用于创建存储过程、函数、触发器和包的主要工具。在这个"Oracle PL/SQL实战(待续)"的主题中,我们将深入...

    oracle pl/sql从入门到精通 配套源代码

    在Oracle PL/SQL中,我们可以通过使用SQL语句来与数据库进行交互,例如SELECT用于查询数据,INSERT、UPDATE和DELETE用于修改数据。PL/SQL还提供了游标(CURSOR)机制,允许我们逐行处理查询结果。此外,PL/SQL还支持...

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(二)

     本书是专门为oracle应用开发人员提供的sql和pl/sql编程指南。通过学习本书,读者不仅可以掌握oracle常用工具oracle universal installer、net comfiguration assistant、sql developer、sql*plus的作用及使用方法...

    Oracle SQL(SQL for Oracle)

    6. **游标**:在处理大量数据时,游标允许逐行处理结果集,常用于循环操作和动态SQL。 7. **存储过程和函数**:这些是预编译的SQL和PL/SQL代码块,可以封装复杂的业务逻辑,提高代码复用性和执行效率。 8. **事务...

    sqlserver自动生成sql语句工具sqlserver转oracle

    在企业级应用中,有时需要在不同的数据库系统间进行数据迁移或兼容性处理,这就涉及到了SQL Server到Oracle的数据转换。本篇文章将详细探讨如何利用工具实现SQL Server自动生成SQL语句并转换到Oracle。 首先,标题...

    Oracle SQL 官方文档

    3. **Oracle SQL参考**:这是Oracle SQL语法的权威指南,涵盖DML(数据操纵语言)如INSERT、UPDATE、DELETE,DDL(数据定义语言)如CREATE、ALTER、DROP,以及查询语言SELECT。它详细解释了各种连接(JOIN)类型、子...

    ORACLE PL/SQL从入门到精通

    ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括触发器、过程、函数、软件包、异常处理、游标、循环、分支、变量使用、数据库安装等关键知识点。 触发器是数据库中用来保证数据...

    Oracle PL/SQL 实例精解(第4版涵盖Oracle 11g)+源码脚本

    5. **异常处理**:Oracle PL/SQL提供了丰富的异常处理机制,使得程序能够优雅地处理错误和异常情况,提高代码的健壮性。书中会展示如何使用RAISE、EXCEPTION、WHENEVER等语句来捕获和处理异常。 6. **包**:包是...

    ORACLE_SQLDeveloper使用教程

    ### Oracle SQL Developer 使用教程 #### 一、Oracle Database Home Page 的使用 在开始介绍 Oracle SQL Developer 的使用之前,我们先来看看如何使用 Oracle Database Home Page。这部分内容非常重要,因为它是...

    Oracle Sql语句转换成Mysql Sql语句

    1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在MySQL中可能需要转换为DECIMAL、TEXT或BLOB。例如,Oracle的NUMBER可以转换为MySQL的DECIMAL或FLOAT,LONG可以转换为TEXT。 2. **分页查询**:Oracle...

    Oracle PL_SQL Language Pocket Reference, 5th Edition.2015.pdf

    ### Oracle PL/SQL 语言袖珍参考手册第五版 (2015) 知识点概览 #### 核心内容概述 《Oracle PL/SQL 语言袖珍参考手册》(第五版)由三位专家Steven Feuerstein、Bill Pribyl和Chip Dawes共同编著,是一本专为Oracle...

    精通Oracle 10g SQL和PL SQL.zip

    在Oracle 10g中,SQL支持各种操作,如DDL(Data Definition Language)用于定义数据库结构,DML(Data Manipulation Language)用于处理数据,以及DCL(Data Control Language)用于控制数据库访问权限。通过学习...

    sqlserver-oracle 数据类型对照

    - `bit`在SQL Server中没有直接对应的Oracle数据类型,但可以近似用单字节的`NUMBER(1)`表示。 - `datetime`和`smalldatetime`在SQL Server中对应Oracle的`DATE`,表示日期和时间。 - `decimal`和`numeric`在SQL ...

    sqlserver转oracle

    标题“sqlserver转oracle”指的是将SQL Server数据库中的数据迁移或同步到Oracle数据库的过程。这个过程通常发生在组织更换数据库系统,或者需要在不同数据库平台之间共享数据时。下面将详细介绍这个过程中涉及的...

    Oracle 10g SQL操作和PLSQL所有命令集合

    通过学习和掌握这些知识点,开发者可以有效地在Oracle 10g环境中管理和操作数据库,进行高效的数据处理和应用程序开发。这些文档(如SQL语句的各章节)将详细解释上述概念,为深入理解Oracle SQL和PL/SQL提供了全面...

    从SQLServer迁移大批量数据到Oracle

    ### 从 SQL Server 迁移大批量数据到 Oracle 在 IT 领域,数据库迁移是一项常见的任务,尤其是在企业级应用中。随着业务的发展和技术的进步,企业可能需要将现有的 SQL Server 数据库迁移到 Oracle 数据库。本文将...

Global site tag (gtag.js) - Google Analytics