查看表字段相关定义

select   *   from   all_col_comments   where   table_name=upper('recsheet') ;

按小时统计,按销售累加销售金额

select s1.code,s1.name,s1.saleday,s1.salehour,s1.amount as hoursale, sum(s2.amount) as daysale from (select code,name,saleday,to_number(salehour) as salehour, sum(amount) as amount  FROM (select  f.code,f.name,b.createddate,to_char(b.createddate,'yyyy-mm-dd') as saleday,to_char(b.createddate,'hh24') as salehour,-- m.cardno ,m.name ,a.amountFROM salesheet b  INNER JOIN SALESHEETGOODS a on a.guid = b.guidinner join Membercard m on m.guid = b.memberid         inner JOIN channel f on (b.channelid = f.channelid)        where  TO_DATE('2020-11-19','yyyy-mm-dd') <= b.SHEETDATE  and  TO_DATE('2020-11-29','yyyy-mm-dd') >= b.SHEETDATE and f.code in ('9901','9902'))   sgroup by code,name,saleday,salehourorder by code,saleday,salehour )s1join(select code,name,saleday,to_number(salehour) as salehour, sum(amount) as amount  FROM (select  f.code,f.name,b.createddate,to_char(b.createddate,'yyyy-mm-dd') as saleday,to_char(b.createddate,'hh24') as salehour,-- m.cardno ,m.name ,a.amountFROM salesheet b  INNER JOIN SALESHEETGOODS a on a.guid = b.guidinner join Membercard m on m.guid = b.memberid        inner JOIN channel f on (b.channelid = f.channelid)where  TO_DATE('2020-11-19','yyyy-mm-dd') <= b.SHEETDATE  and  TO_DATE('2020-11-29','yyyy-mm-dd') >= b.SHEETDATE and f.code in ('9901','9902'))   sgroup by code,name,saleday,salehourorder by code,saleday,salehour ) s2on  s1.code = s2.code and s1.name = s2.name and s1.saleday = s2.saledaywhere s1.salehour >= s2.salehour and s1.code = s2.code and s1.name = s2.name and s1.saleday = s2.saledaygroup by s1.code,s1.name,s1.saleday,s1.salehour,s1.amountorder by  s1.code,s1.name,s1.saleday,s1.salehour

查看积分
select * from viewvipintegral where cardno=‘c87dfd31bd7541aab61a1f47465886fc’
viewvipintegral 是视图

查看表的定义
SELECT DBMS_METADATA.GET_DDL(‘TABLE’,‘TABLE_NAME’) FROM DUAL;
查看视图的定义语句

SELECT DBMS_METADATA.GET_DDL(‘VIEW’,‘VIEW_NAME’) FROM DUAL;
表名跟视图名称均要大写。

如 SELECT DBMS_METADATA.GET_DDL(‘VIEW’,‘VIEWVIPINTEGRAL’) FROM DUAL;

 CREATE OR REPLACE FORCE VIEW "REGENTA"."VIEWVIPINTEGRAL" ("CARDNO", "INTEGRAL") AS select
/*
------------------------------------------
说明: 会员积分
返回:
建立人员: wk
建立日期:2015-05-04
修改 wk 2015-11-16 调整积分的算法
修改wk 2016-04-28 增加零售订单 与退货的积分
修改wk 2016-05-25 增加零售订单抵减积分
------------------------------------------
*/
--合计积分 = 期初 + 销售累计积分 + 转入积分 - 转出积分 + 充值积分 - 抵减 + 调整 - 清理(年度累计 + 年末抵减)cardno,Sum(balance) INTEGRAL From (--上线期初Select score balance,to_char(cardno) cardnoFrom viewblanceintegral vlUnion All--销售Select nvl(sum(SLG.INTEGRAL),0) balance,to_char(SL.cardno) cardnofrom SaleList slInner Join SALELISTGOODS SLG On SL.GUID=SLG.GUID AND SL.status=1 And sl.cardno Is Not NullInner Join viewblanceintegral vl On sl.cardno=vl.cardno And sl.saledate > vl.sheetdateGroup By SL.cardnoUnion Allselect nvl(sum(og.addintegral),0) balance,to_char(ob.buyer_cardno) cardnofrom o2o_trade  otinner join o2o_tradegoods og on og.guid = ot.guidinner join O2O_TradeBuyer ob on ob.guid=ot.guidInner Join viewblanceintegral vl On ob.buyer_cardno=vl.cardno And trunc(ot.sheetdate) > vl.sheetdatewhere ot.status=1group by ob.buyer_cardnoUnion all--积分转卡--转入卡号select nvl(sum(balance),0) balance,to_char(incardno) cardnofrom IntegralTrans itInner Join viewblanceintegral vl On it.incardno=vl.cardno And it.sheetdate > vl.sheetdatewhere status=1 Group By incardnoUnion All--积分转卡--转出卡号select nvl(sum(balance),0)* -1 balance,to_char(outcardno) cardnofrom IntegralTrans itInner Join viewblanceintegral vl On it.outcardno=vl.cardno And it.sheetdate > vl.sheetdatewhere status=1 Group By outcardnoUnion All--充值产生积分 充值积分select nvl(sum(integralvalue),0) balance,to_char(ce.cardno)from CardRecharge ceInner Join viewblanceintegral vl On ce.cardno=vl.cardno And ce.sheetdate > vl.sheetdatewhere status=1 Group By ce.cardnoUnion All--积分明细 --type类型 1=积分兑换/2=抵减积分/4=零售退货产生积分/5=零售订单付款扣减积分select nvl(sum(Integral),0) * -1 balance,Guid cardnofrom MemberIntegrationDetail mdInner Join viewblanceintegral vl On md.guid=vl.cardno And md.saledate> vl.sheetdatewhere type IN (1,2,4,5)  and DirectFlag=-1Group By GuidUnion All--积分调整select nvl(sum(Integral),0) balance,Guid cardnofrom MemberIntegrationDetail mdInner Join viewblanceintegral vl On md.guid=vl.cardno And md.saledate> vl.sheetdatewhere type=3 Group By GuidUnion All--积分清零select nvl(sum(integration)+sum(ClearINTEGR),0) * -1 balance, mc.cardnofrom memberintegrationClear mcInner Join viewblanceintegral vl On mc.cardno =vl.cardno And mc.sheetdate > vl.sheetdateGroup By mc.cardno) Group By cardno
select fn_calintegralvalue('c87dfd31bd7541aab61a1f47465886fc') from dual;

查看函数的定义
SELECT * FROM USER_PROCEDURES;

SELECT * FROM USER_SOURCE WHERE NAME = 'FN_CALINTEGRALVALUE';

名称均要大写

Oracle的NVL函数用法
从两个表达式返回一个非 null 值。

语法

NVL(eExpression1, eExpression2)

参数
eExpression1, eExpression2

如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 .NULL.。

返回值类型

字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

说明

在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。

select nvl(a.name,‘空得’) as name from student a join school b on a.ID=b.ID

注意:两个参数得类型要匹配

 1 SELECT           T.D_FDATE,2                        T.VC_ZHCODE,3                        NVL(SUM(T.F_FZQSZ), 0) f_price_b,4                        NVL(SUM(T.F_FZQCB), 0) f_cost_b,5                        NVL(SUM(T.F_FGZ_ZZ), 0) f_gz_b,6                        NVL(SUM(T.F_FYZQSZ), 0) f_price_Y,7                        NVL(SUM(T.F_FYZQCB), 0) f_cost_Y,8                        NVL(SUM(T.F_FYGZ_ZZ), 0) f_gz_Y,9                        T.VC_SOURCE,
10                        SYSDATE d_updatetime
11                   FROM GZ_FUND_GZB T

比如这样的判断就很重要啦,因为你不知道哪一行是 is not null 的,也不知道接下来是否要对这个单元格进行运算操作,因此,不能给列填 null,就给它一个 0 ,便于查看,也便于运算。

查询导购业绩报表

 select a.*FROM salesheet b INNER JOIN SalesManApportion a on a.saleGuid = b.guidINNER JOIN Businessperson  bp on bp.guid = a.businessIdwhere b.manualid='330311922203050003e'--- salesheet  销售表--- SalesManApportion  导购业绩分摊表--- Businessperson 导购信息表

分组后取每组的前10

       select rankNum AS rankNum,scode as branchCode,businesspatternname,goodsNo AS sku,goodsName AS description,saleNum AS quantity,amount AS soldValuefrom (select row_number() over ( partition BY scode  ORDER BY amount desc) as rankNum,businesspatternname,scode,goodsNo,goodsName,saleNum,amount from (SELECTf.code as scode,f.name as bp.businesspatternname,e.goodsno AS goodsNo,e.goodsname AS goodsName,sum(a.quantity) AS saleNum,sum(a.amount) AS amountFROM SALESHEETGOODS aLEFT JOIN salesheet b on a.guid = b.guidLEFT JOIN goods e on (a.goodsid = e.goodsid)LEFT JOIN channel f on (b.channelid = f.channelid)LEFT JOIN CHANNEL C3 ON (f.Parentid = C3.CHANNELID)Left Join vgoodscategorysales sa On e.salescategoryid=sa.GoodsSaleCategoryidleft join vgoodscategorystory br on br.GoodsStoryCategoryid = e.STORYCATEGORYIDleft join channeltypelist ct on f.channeltypeid = ct.idleft join BusinessPatternlist bp  on bp.id= f.BUSINESSPATTERNIDleft join varea  va on va.id = f.AREAID    where                                                -- and sa.goodssalecategory1 = #{goodssalecategory1}TO_DATE('2022-01-01','yyyy-mm-dd') <= b.SHEETDATE-- and bp.businesspatternname='直营'and sa.goodssalecategory1='套件'group by f.code,bp.businesspatternname,e.goodsno,e.goodsname having sum(a.amount) > 0 )) where rankNum  < 6

查看表锁
select b.owner TABLEOWNER, b.object_name TABLENAME, c.OSUSER LOCKBY, c.USERNAME LOGINID, c.sid SID, c.SERIAL# SERIAL
from v l o c k e d o b j e c t a , d b a o b j e c t s b , v locked_object a,dba_objects b, v lockedo​bjecta,dbao​bjectsb,vsession c
where b.object_id = a.object_id AND a.SESSION_ID =c.sid ;

alter system kill session ‘245,43584’;

select object_name,machine,s.program,s.sid,
s.sid||‘,’||s.serial# as killid,
p.spid as os_pid,
s.sql_address,
s.status,
decode(l.locked_mode, 0, ‘None’,
1, ‘Null’,
2, ‘Row-S’,
3, ‘Row-X’,
4, ‘Share’,
5, ‘S/Row-X’,
6, ‘Exclusive’, ‘Unknown’) locked_mode,
s.username,
s.process,
s.sql_id
from gv l o c k e d o b j e c t l , d b a o b j e c t s o , g v locked_object l, dba_objects o,gv lockedo​bjectl,dbao​bjectso,gvsession s,gv$process p
where l.object_id=o.object_id and l.session_id=s.sid
and s.paddr=p.addr
and object_name=upper(‘&tablename’) and o.owner=upper(‘&owner’) order by 1;

select object_name,machine,s.program,s.sid,
s.sid||‘,’||s.serial# as killid,
p.spid as os_pid,
s.sql_address,
s.status,
decode(l.locked_mode, 0, ‘None’,
1, ‘Null’,
2, ‘Row-S’,
3, ‘Row-X’,
4, ‘Share’,
5, ‘S/Row-X’,
6, ‘Exclusive’, ‘Unknown’) locked_mode,
s.username,
s.process,
s.sql_id
from gv l o c k e d o b j e c t l , d b a o b j e c t s o , g v locked_object l, dba_objects o,gv lockedo​bjectl,dbao​bjectso,gvsession s,gv$process p
where l.object_id=o.object_id and l.session_id=s.sid
and s.paddr=p.addr
and object_name=upper(‘&tablename’) and o.owner=upper(‘&owner’) order by 1;"


这个语句可以查看那个表锁了,需要输入表名和用户名

select decode(request,0,‘Holder:’,‘Waiter:’)||s.inst_id||‘:’||s.sid||‘,’||s.serial# sess, s.BLOCKING_SESSION,s.status,
id1,id2,lmode,request,l.type,ctime,s.username,s.sql_id,s.PREV_SQL_ID,s.event,s.SQL_EXEC_START
–,s.service_name
from gv l o c k l , g v lock l,gv lockl,gvsession s
where (id1,id2,l.type) in
(select id1,id2,type from gv$lock where request>0)
and l.sid=s.sid
and l.inst_id=s.inst_id
order by id1,ctime desc,request;
/

select decode(request,0,‘Holder:’,‘Waiter:’)||s.inst_id||‘:’||s.sid||‘,’||s.serial# sess, s.BLOCKING_SESSION,s.status,
id1,id2,lmode,request,l.type,ctime,s.username,s.sql_id,s.PREV_SQL_ID,s.event,s.SQL_EXEC_START
–,s.service_name
from gv l o c k l , g v lock l,gv lockl,gvsession s
where (id1,id2,l.type) in
(select id1,id2,type from gv$lock where request>0)
and l.sid=s.sid
and l.inst_id=s.inst_id
order by id1,ctime desc,request;
/"


这个SQL看数据库存在的锁信息,持锁会话

Oracle的sql相关推荐

  1. oracle pl/sql 程序设计 历史笔记整理

    20131016 周三 oracle pl/sql 程序设计 第2章 创建并运行pl/sql代码 sqlplus yjkhecc/yjkhecc@10.85.23.92:1521/orcl 在java ...

  2. ORACLE分页SQL

    ORACLE分页SQL 1,使用rownum SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ...

  3. oracle bom层级sql,oracle bom_tree.sql

    oracle bom_tree.sql CREATE OR REPLACE FUNCTION BOM_TREE(vpart_no IN parts.part_no%TYPE,mm in varchar ...

  4. Oracle查看SQL执行计划的方式

    Oracle查看SQL执行计划的方式 获取Oracle sql执行计划并查看执行计划,是掌握和判断数据库性能的基本技巧.下面案例介绍了多种查看sql执行计划的方式: 基本有以下几种方式: 1.通过sq ...

  5. Oracle如何代码编辑,配置UltraEdit为Oracle PL/SQL代码编辑器

    配置UltraEdit为Oracle PL/SQL代码编辑器[@more@] 将下文复制到UltraEdit的wordfile.txt的最后,就能实现UltraEdit中对PL/SQL文件语法突出显示 ...

  6. cmd进入Oracle的sql*plus

    Oracle里sql*plus的用户名即system用户,密码是自己设置的密码. 如果密码忘记,可通过如下方法重置. 1.win键+R键,输入cmd,打开命令提示符. 2.输入sqlplus /nol ...

  7. oracle12测试骤,Oracle中SQL语句解析的步骤

    我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析.那么这两种解析有何不同之处呢?它们又分别是如何进行解析呢?Oracle内部解析的步骤又是如何进行的呢?下面 ...

  8. oracle数据库----SQL语句的实践(应用实例)

    oracle数据库----SQL语句的实践(应用实例) 创建表工资表salary,包括员工号emp_id,员工名emp_name,员工月基本工资monthsal,员工月总发工资totalsal. cr ...

  9. Oracle 与SQL Server 2000常用函数对照 [摘抄]

    此文章系摘抄,非原创,供参考. 文中提及函数并非Oracle及SQL Server 的全部功能,尤其分析挖掘函数,并未完全涵盖,请以实际解决问题优先,勿妄谈二者优劣. 1.绝对值 S:select a ...

  10. oracle表结构修改回滚,87.Oracle数据库SQL开发之 修改表内存——数据库事务的提交和回滚...

    87.Oracle数据库SQL开发之 修改表内存--数据库事务的提交和回滚 数据库事务(transaction)就是一组SQL语句,这组SQL语句时一个逻辑工作单元. 要永久性的记录事务中SQL语句的 ...

最新文章

  1. 在C语言里_大学生:我学了这么久的C语言,为什么感觉它啥都做不了?网友:恰恰相反!...
  2. 通过Runtime源码了解关联对象的实现
  3. 【错误记录】无法打开 “xxx“ , 因为 Apple 无法检查其是否包含恶意软件
  4. 玩转webpack(一)下篇:webpack的基本架构和构建流程
  5. android里面画布快照,自定义 View - Canvas - 画布操作和快照
  6. Lua 和 C 交互中虚拟栈的操作和遍历
  7. 专题导读:大数据支撑的智能应用
  8. pycharm中的数据库可视化
  9. vscode搭建汇编环境
  10. TCP/IP框架总结
  11. NDK 开发之 CMake 的使用
  12. OPC UA 的本质
  13. STM32+多片AD7705+双通道采集热电偶
  14. 台式计算机 cpu型号大全,台式机CPU参数对照表
  15. 第四章软件项目进度管理
  16. BZOJ3202 [Sdoi2013]项链
  17. 小程序分账系统是什么?能解决二清吗?
  18. C语言实现扫描文件下所有目录
  19. 技能设计漫谈 ——从游戏性和流畅角度来看技能的设计要点。
  20. Java | interface 和 implements关键字【接口,看这篇就够了】

热门文章

  1. 2021主动降噪蓝牙耳机哪款好?这几款蓝牙耳机果然凭实力上榜
  2. desktop位置不可用,桌面文件丢失,重启无效
  3. NAT、PAT的原理及配置
  4. 复盘2021年影视市场:“主旋律”成主基调,影企与观众双向奔赴
  5. 安装计算机ppt,计算机软件安装.ppt
  6. Java经典面试题详解:抖音Java后端123面开挂
  7. Excel常用功能和常用函数学习笔记
  8. 经典机器学习方法(3)—— 多层感知机
  9. 「季淳卿」MyBatis学习总结
  10. sql求某列的平均值