`

***我的Oracle SQL总结!!!

 
阅读更多

###SQL就是:1)增、删、改、查,2)排序用order by XXX desc(时间排序+数值大小排序+String字母顺序排序),3)如果想重新分组使用group by,4)最大最小等使用oracle函数,5)判断使用decode,6)子查询,7)连表查询,8)存储过程+触发器+索引+视图。等等操作组合

 

1.##话费产品及佣金查询 前台--SQL

--select count(*) 
select t2.product_name,t2.money,t1.fast_price,t1.fast_commission,t2.roll_back
from t_commission t1,t_product_type t2,T_BUSSINESS_SAFE t3 
where 1=1 and t3.type_num=t1.type_num and t1.product_num=t2.product_num
--下面的参数,需要动态传进来
and t3.bussiness_id='15145117218' and t2.operators_code='41' and t2.area_code='0451' 
and t2.money in(1,3,5,100,200)

 

2.##二版冲正状态管理 后台--SQL

select t.*, t.rowid from t_product_type t

SELECT DISTINCT t1.province_code,t2.province,t3.d_name,
t1.operators_code,t1.roll_back 
FROM t_product_type t1,t_area t2,t_dictionary t3
where t1.province_code=t2.province_code and t1.operators_code=t3.d_code 
order by t1.province_code asc,t1.operators_code asc

---------------------------------------------------------------------------------------
--select count(*) from() 如果想查下面结果集的个数,只需将下面的sql套在from的括号中
select tpt.province_code as provinceCode,max(ta.province) as proviceName,
max(decode(tpt.operators_code,'40','移动','')) as  opn1,
max(decode(tpt.operators_code,'40','40','')) as  op1,
max(decode(tpt.operators_code,'40',tpt.roll_back,'')) as rb1,
max(decode(tpt.operators_code,'41','联通','')) as opn2,
max(decode(tpt.operators_code,'41','41','')) as  op2,
max(decode(tpt.operators_code,'41',tpt.roll_back,'')) as rb2,
max(decode(tpt.operators_code,'42','电信','')) as opn3,
max(decode(tpt.operators_code,'42','42','')) as  op3,
max(decode(tpt.operators_code,'42',tpt.roll_back,'')) as rb3
from t_product_type tpt left join t_area ta on tpt.province_code=ta.province_code 
group by tpt.province_code 
--可以加having限制条件
--having 1=1 and tpt.province_code='251'

--更新
update t_product_type t set t.roll_back='10' where t.province_code='251'
and t.operators_code='40'

 

3.##短信套餐查询统计 后台--sql

--查询(模糊):
select bi.bussiness_id,bi.bussiness_name,vsc.*,dic.d_server_name from
t_bussiness_combo bc left join t_bussiness_info bi on bc.bussiness_id=bi.bussiness_id
left join t_value_service_combo vsc on bc.combo_num = vsc.combo_num
left join t_dictionary dic on dic.d_code = vsc.state where 1=1;
----------------------------------------------------------------------------------------------------------------
--详细:
select t2.bussiness_id,t3.bussiness_name,t1.combo_name,t1.combo_info,
t1.combo_duration,t1.combo_money, dic.d_server_name from 
t_value_service_combo t1,t_bussiness_combo_record t2,T_BUSSINESS_INFO t3,t_dictionary dic 
where t1.combo_num=t2.combo_num and t2.bussiness_id=t3.bussiness_id 
and t2.record_type=dic.d_code and t2.bussiness_id='13000000000';

 

4.##单边sql语句--统计

--单边sql语句--统计
select sum(1) TOTALNUM,
sum(decode(t.operators_code,'40',1,0)*decode(t.state,'0',1,0)) YIDONGNUM,
sum(decode(t.operators_code,'41',1,0)*decode(t.state,'0',1,0)) LIANTONGNUM,
sum(decode(t.operators_code,'42',1,0)*decode(t.state,'0',1,0)) DIANXINNUM,
sum(t.money) TOTALPRICE,
sum(decode(t.operators_code,'40',t.money,0)*decode(t.state,'0',1,0)) YIDONGPRICE,
sum(decode(t.operators_code,'41',t.money,0)*decode(t.state,'0',1,0)) LIANTONGPRICE, 
sum(decode(t.operators_code,'42',t.money,0)*decode(t.state,'0',1,0)) DIANXINPRICE 
from t_phone_sale t where t.bussiness_id='13000000000';

 

5.##根据类型+状态,查询移动成功总数

--根据类型+状态,查询移动成功总数
select sum(decode(t.operators_code,'40',1,0)*decode(t.state,'0',1,0)) yidongNum 
from t_phone_sale t--40为移动
   

6.时间倒序、type_num正序排列结果集

--时间倒序、type_num正序排列结果集
select * from t_commission t order by t.create_date desc,t.type_num desc 

select * from t_commission t order by t.create_date desc,t.type_num asc
 

7.在线充值,业务查询,增加统计项

--前台:在线充值,业务查询,
--增加统计项(业务总数,成功业务总数,总资金数,成功业务资金数,佣金合计)
--sql为:
select count(*) as recordTotal,nvl(sum(decode(t1.state,'0',1,0)),0) as successTotal,
nvl(sum(t1.money),0) as moneyTotal,
nvl(sum(decode(t1.state,'0',t1.money,0)),0) as successMoneyTotal,
nvl(sum(decode(t1.state,'0',t1.commission,0)),0) as commissionTotal 
from T_PHONE_SALE t1 where 1=1 and t1.state='0' and t1.bussiness_id='15104667195' 
and t1.create_date>=to_date('2011-07-27 11:49','yyyy-MM-dd HH24:MI') 
and t1.create_date<=to_date('2011-08-26 23:59','yyyy-MM-dd HH24:MI');

 

8.Oracle查询前10条记录

select * from t_product_type where rownum <=10

 

9.二版 产品及佣金查询

SELECT
  t1.PRODUCT_NUM  as productNum ,
  t2.product_name  as productName ,
  t2.roll_back  as rollBack ,                
  t1.TYPE_NUM  as typeNum ,            
  t1.CREATE_DATE  as createDate ,      
  t1.EMPLOYEE_ID  as employeeId ,      
  t1.ALTER_DATE  as alterDate ,
  t1.MONEY  as money ,         
  t1.FAST_COMMISSION  as fastCommission ,      
  t1.NORM_COMMISSION  as normCommission ,              
  t1.OTHER_FAST_COMMISSION  as otherFastCommission ,      
  t1.OTHER_NORM_COMMISSION  as otherNormCommission ,   
  t1.ALL_FAST_COMMISSION  as allFastCommission ,      
  t1.ALL_NORM_COMMISSION  as allNormCommission ,                 
  t1.FAST_PRICE  as fastPrice ,      
  t1.NORM_PRICE  as normPrice ,            
  t1.OTHER_FAST_PRICE  as otherFastPrice ,      
  t1.OTHER_NORM_PRICE  as otherNormPrice ,      
  t1.ALL_FAST_PRICE  as allFastPrice ,      
  t1.ALL_NORM_PRICE  as allNormPrice,
  decode(t2.area_code,'0451',t1.FAST_COMMISSION,decode(t2.province_code,'255',t1.OTHER_FAST_COMMISSION,t1.ALL_FAST_COMMISSION)) as  myCommission,
  decode(t2.area_code,'0451',t1.FAST_PRICE,decode(t2.province_code,'255',t1.OTHER_FAST_PRICE,t1.ALL_FAST_PRICE)) as  myPrice                         
FROM  T_COMMISSION t1,t_product_type t2,T_BUSSINESS_SAFE t3
where 
  t3.type_num=t1.type_num  
  and t1.product_num=t2.product_num and t2.state='10'
  and t2.area_code='0571'

 

10.显示最晚创建的公告,且只显示一条

select * from (select * from t_upgrade t where t.finish_date>=sysdate order by t.create_date desc) where rownum = 1

 

11.更新数据,可以用这样查出来

select t.*, t.rowid from t_bussiness_safe t where t.bussiness_id='15145117218' for update

 

12.查询在发布时间、结束时间之内的升级公告

--publish_date为发布时间,t.finish_date为结束时间
select * from t_upgrade t where 
t.publish_date<=sysdate 
and t.finish_date>=to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd') 
order by t.create_date desc

 合成sqlMap文件(TUpgrade.xml)

<select id="queryModel"  parameterClass="com.hanpeng.base.phone.model.TUpgrade" 
					resultClass="com.hanpeng.base.phone.model.TUpgrade">
	select
		UPGRADE_NUM as upgradeNum ,
		UPGRADE_INFO as upgradeInfo ,
		CREATE_DATE as createDate ,
		PUBLISH_DATE as publishDate ,
		FINISH_DATE as finishDate ,
		EMPLOYEE_ID as employeeId
	from (select * from t_upgrade t where t.publish_date&lt;=sysdate 
	and t.finish_date>=to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd') 
	order by t.create_date desc) where rownum = 1
</select>
 

13.oracle随机查询

-- 从表zeeno中“全表扫描”随机抽取10%的记录,随机查询5条记录

select object_name from zeeno sample(10) where rownum<6

 

14.查询前10条记录

select * from test where rownum <=10

 

  • 描述: 1.话费产品及佣金查询前台--SQL
  • 大小: 12 KB
  • 描述: 2.二版冲正状态管理 后台--SQL
  • 大小: 44 KB
  • 描述: 3.短信套餐查询统计 后台--SQL
  • 大小: 34.7 KB
  • 描述: 4.单边sql语句--统计 后台--SQL
  • 大小: 17.5 KB
  • 描述: 5.根据类型+状态,查询移动成功总数
  • 大小: 13.3 KB
  • 描述: 7.在线充值,业务查询,增加统计项
  • 大小: 19 KB
  • 描述: 9.二版 产品及佣金查询
  • 大小: 29.3 KB
分享到:
评论

相关推荐

    ORACLE_SQLDeveloper使用教程

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

    DBA对Oracle SQL编写规范的总结

    ### DBA对Oracle SQL编写规范的总结 #### 一、引言 在Oracle数据库开发过程中,遵循一套标准化的SQL编写规范对于提升代码质量、增强可读性和可维护性至关重要。本文档由一位经验丰富的数据库管理员(DBA)撰写,旨在...

    ORACLE和SQL Server的语法区别

    ### ORACLE和SQL Server的语法区别 #### 一、概述 本文主要介绍Oracle与SQL Server在SQL语言层面的异同之处,重点在于Transact-SQL(T-SQL)与PL/SQL之间的区别,并提供了一些迁移策略。对于希望将现有的Oracle...

    ORACLE和SQL语法区别归纳

    本文旨在为初学者提供关于Oracle与SQL Server在数据类型、函数及日期操作等方面的语法差异总结,帮助读者更好地理解这两种数据库管理系统的特点,并能够在实际应用中灵活选择合适的语法进行操作。 #### 数据类型...

    *oracle存储过程总结*oracle存储过程总结*

    根据提供的文件信息,我们可以归纳出以下Oracle存储过程的相关知识点: ### Oracle存储过程基础概念 ...以上是基于提供的部分内容对Oracle存储过程进行的总结,包含了从基础概念到具体应用实例的全面解析。

    Pro Oracle SQL (2010)

    ### Pro Oracle SQL (2010) 知识点概览 #### 一、书籍简介与作者背景 《Pro Oracle SQL》是一本于2010年出版的专业性极强的技术书籍,由Karen Morton、Kerry Osborne、Robyn Sands、Riyaj Shamsudeen 和 Jared ...

    oracle SQL 对比.doc

    ### Oracle SQL 与 MSSQL Server 7.0 迁移中的关键知识点 #### 一、迁移背景与目标 - **目的**: 本文旨在帮助具备Oracle经验的开发人员将其应用程序迁移至Microsoft SQL Server环境,尤其针对SQL Server 7.0版本。...

    oracle与SQL server的语法差异总结

    Oracle 和 SQL Server 是两种广泛应用的关系型数据库管理系统,它们在语法和功能上存在一定的差异。以下是对两者主要区别的一些详细说明: 1. **伪列 ROWNUM**: 在Oracle中,ROWNUM是一个伪列,用于获取结果集中...

    Oracle数据库sql语句 跟踪器

    总结来说,Oracle数据库SQL语句跟踪器是一个强大的性能分析工具,它通过Toad for Oracle等工具提供深入的洞察,帮助数据库管理员和开发者有效地优化数据库性能,提升系统的整体响应速度和稳定性。通过实时监控、性能...

    oracle sql and pl/sql

    根据提供的文件信息,我们可以推断出本书主要关注的是Oracle SQL 和 PL/SQL 的掌握与应用。下面将基于这些信息来生成相关的知识点。 ### Oracle SQL 和 PL/SQL 知识点 #### 一、Oracle SQL 概述 1. **定义**:...

    oracle消耗资源的sql查询语句记录

    ### Oracle消耗资源的SQL查询语句记录 在Oracle数据库管理中,监控和优化SQL查询是确保系统性能稳定的关键环节之一。对于那些消耗大量资源的SQL语句进行记录和分析可以帮助DBA快速定位问题并采取相应的优化措施。...

    Oracle SQL性能优化技巧大总结

    ### Oracle SQL性能优化技巧大总结 #### 一、选择最有效率的表名顺序 **背景**:在基于规则的优化器(RBO)中,Oracle解析器处理FROM子句中的表名是从右向左的。为了提高查询效率,需要合理安排表的顺序。 **技巧...

    oracle的SQL语句的一些经验总结

    以下是对"Oracle的SQL语句的一些经验总结"中可能涉及的关键知识点的详细阐述: 1. **基本查询**:SQL的基础是SELECT语句,用于从表中提取数据。例如,`SELECT column1, column2 FROM table_name;`用于获取指定列的...

    Oracle_SQL注入

    ### Oracle SQL注入技术详解 #### 一、Oracle SQL注入概述 **Oracle SQL注入**是一种针对使用Oracle数据库的应用程序的安全攻击手段。攻击者通过构造特殊的SQL查询来操纵目标应用程序中的SQL语句,以此来获取敏感...

    oracle sql loader全攻略

    总结来说,Oracle SQL Loader是一款功能强大的数据加载工具,不仅提供了灵活的数据格式支持,还具备高效的数据加载能力。通过合理配置命令行参数和控制文件,可以充分发挥其优势,实现高效的数据迁移任务。

    Oracle SQL Reference

    ### Oracle SQL Reference 知识点概述 #### 一、Oracle SQL Reference 概述 - **文档版本**: 该文档为Oracle Database SQL Language Reference 11g Release 2 (11.2)版本,出版日期为2012年12月。 - **版权信息**: ...

Global site tag (gtag.js) - Google Analytics