oracel 相关

原创文章:如有下载及转载请注明来源链接,否则视为侵权
--excel辅助列合同号、日期公式快速在oracel查询
="select'"&D27&"'"&"合同号,"&"to_date('"&YEAR(Q27)&"/"&MONTH(Q27)&"/"&DAY(Q27)&"','yyyy/mm/dd')"&" 日期 from dual union all"

="select '"&A6&"'"&" 合同号 ,"&"to_date('"&YEAR(D6)&"/"&MONTH(D6)&"/"&DAY(D6)&"','yyyy/mm/dd')"&"还款时间 ,"&"'"&E6&"'"&"还款金额 ,"&"'"&J6&"'"&"机构 from dual union all"

--方法1更新表数据
MERGE INTO 表名
USING(
)
WHEN MATCHED THEN UPDATE SET

--举例
MERGE INTO collection.xn_calls_info a
USING(SELECT *
FROM xn043830.collection_user_info p
) mix ON(mix.userid=a.collection_id AND a.all_day=TRUNC(SYSDATE)-1)
WHEN MATCHED THEN UPDATE SET
a.collector_name=mix.collector_name;
--COMMIT ;

--方法2更新表数据
UPDATE 表名
SET
WHERE
--举例
UPDATE collection.xn_calls_info a
SET a.collctor_name=
(SELECT mix.collector_name
FROM xn043830.collection_user_info mix)
WHERE (SELECT mix.userid
FROM xn043830.collection_user_info mix)=a.collection_id
AND a.all_day=TRUNC(SYSDATE)-1

-------------更新cpd!=0的退案时间
UPDATE XN044215.XN_AGENCY_CALLLIST C
SET C.ASSIGN_END_DAY = TRUNC(SYSDATE) ---改为当天,原为昨天
WHERE C.ASSIGN_END_DAY > TRUNC(SYSDATE)---去掉=号
AND C.CPD != '0'
AND EXISTS (SELECT 1
FROM COLLECTION.ACCT_LOAN_DAILY L
WHERE C.CONTRACT_NO = L.PUTOUTNO
AND L.CPDDAYS <= 0
AND L.INSERT_TIME = TRUNC(SYSDATE)
AND L.PUTOUTNO NOT IN
(SELECT D.CONTRACT_NO
FROM COLLECTION.XN_COLL_CONTRACTS_INFO D
WHERE D.PAYOFF_DATE IS NOT NULL));

----------------------------------------------------------oracel LOOP循环语法格式---------------------------------------
create or replace procedure p_contract_cpd_daily as

begin

declare

v_date date;

begin

select trunc(sysdate) --今天
  into v_date
  from dual;

LOOP

  IF v_date > trunc(sysdate) THEN
    EXIT;
  END IF;
  ........
  ........
  ........
  ........
  commit;

  v_date := trunc(v_date) + 1;

END LOOP;

end;

end p_contract_cpd_daily;

--生成累计和(当over()后面不加任何内容时,就是对所有的数据进行汇总)
SELECT hh.contract_no AS 合同号,
hh.total_o_d_amt AS 委案金额,
SUM(hh.total_o_d_amt) OVER(ORDER BY hh.contract_no) AS 累计委案
/* (SELECT listagg(total_o_d_amt,'+')WITHIN GROUP(ORDER BY contract_no )
FROM bi.report_receivalble_base pp
WHERE hh.processing_date=TRUNC(SYSDATE) -1
AND hh.contract_no LIKE'100%'
AND hh.total_o_d_days BETWEEN 1 AND 30
AND pp.contract_no<=hh.contract_no
) AS 计算公式**/
FROM bi.report_receivalble_base hh
WHERE hh.processing_date=TRUNC(SYSDATE) -1
AND hh.contract_no LIKE'100%'
AND hh.total_o_d_days BETWEEN 1 AND 30

--求百分比函数
SELECT round(100/470*100,2)||'%'
FROM dual

--加减年/月/日
SELECT TRUNC(SYSDATE)-1 AS 减去1天,
TRUNC(SYSDATE)+1 AS 加上1天,
TRUNC(SYSDATE)-5 AS 减去5天,
add_months(TRUNC(SYSDATE),1) AS 加一个月,
add_months(TRUNC(SYSDATE),-2) AS 减去一个月,
add_months(TRUNC(SYSDATE,'MM'),-1) AS 上个月1日,
last_day(add_months(TRUNC(SYSDATE,'MM'),-1)) AS 上个月最后1天,
--加减时/分/秒
SYSDATE-1/24/60/60 AS 减去1秒,
SYSDATE+1/24/60/60 AS 加上1秒,
TRUNC(SYSDATE,'mi')-5/24/60 AS 减去5分钟,
TRUNC(SYSDATE,'mi')+5/24/60 AS 加上5分钟,
TRUNC(SYSDATE,'hh') -10/24 AS 减去10小时,
TRUNC(SYSDATE,'hh') +10/24 AS 加上10小时,
--字符型求星期,月份及年
to_char(SYSDATE,'day') AS 星期几,
to_char(SYSDATE,'month') AS 月份,
to_char(SYSDATE,'year') AS 年,
to_char(SYSDATE,'dd') AS 日期,
to_char(SYSDATE,'mm') AS 数字月份,
to_char(SYSDATE,'yyyy')
FROM dual


--三种情况排序对比
--(1)row_number()排序---分组后 ,每一组排序值都是连续排下去的,1,2,3,4 ,这种方法方便去重,相同组的数据只取一条
SELECT hh.contract_no AS 合同号,
hh.currcollector,
hh.total_o_d_amt,
row_number()OVER(PARTITION BY hh.contract_no,hh.currcollector ORDER BY hh.total_o_d_amt DESC ) AS rn
FROM bi.report_receivalble_base hh
WHERE hh.processing_date BETWEEN TRUNC(SYSDATE,'MM')-15 AND TRUNC(SYSDATE) -1
AND hh.contract_no LIKE'100%';

--(2)RANK()排序---分组后 ,是跳跃排序,有两个第1名时接下来就是第3名(同样是在各个分组内).
SELECT hh.contract_no AS 合同号,
hh.currcollector,
hh.total_o_d_amt,
RANK()OVER(PARTITION BY hh.contract_no,hh.currcollector ORDER BY hh.total_o_d_amt DESC ) AS rn
FROM bi.report_receivalble_base hh
WHERE hh.processing_date BETWEEN TRUNC(SYSDATE,'MM')-15 AND TRUNC(SYSDATE) -1
AND hh.contract_no LIKE'100%';

--(3)dense_rank()排序是连续排序,有两个第1名时仍然跟着第二名。 有重复值的
SELECT hh.contract_no AS 合同号,
hh.currcollector,
hh.total_o_d_amt,
dense_rank()OVER(PARTITION BY hh.contract_no,hh.currcollector ORDER BY hh.total_o_d_amt DESC ) AS rn
FROM bi.report_receivalble_base hh
WHERE hh.processing_date BETWEEN TRUNC(SYSDATE,'MM')-15 AND TRUNC(SYSDATE) -1
AND hh.contract_no LIKE'100%';


--限制返回来行数

SELECT *
FROM
(SELECT hh.*,ROWNUM AS ll
FROM bi.report_receivalble_base hh
WHERE ROWNUM<=10
)kk
WHERE ll=10

--随机排序(先随机排序,再取数据)
SELECT *
FROM
(SELECT hh.*
FROM bi.report_receivalble_base hh
ORDER BY dbms_random.value()

)
WHERE ROWNUM<=10

SELECT LEVEL FROM dual CONNECT BY LEVEL <=4

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,449评论 0 13
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,317评论 0 10
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,074评论 0 0
  • ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year:...
    雨一流阅读 661评论 0 2
  • select to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh24:mi:...
    snailever阅读 1,226评论 0 1