-- left join 以左边的表为主,根据on关联条件,左边所有的数据都会显示出来,右边表中在左边没有匹配的数据会以Null来代替
-- right join 是以右边为主,根据on关联查询出数据,根据on关联出来的数据会选出来,左边表中在右边没有匹配的数据会以Null来代替
-- inner join 要根据on为查询条件 查询出左边和右边都能根据on匹配的数据 ,没有匹配的不会选出来,就用 inner join
##*****************一下都是DB2中的操作*********************************************************************
select * from conf_bt_before_task where name like '%信函预处理%'
select * from conf_bt_after_task where name in('导出直催PDA外访总结码',
'待外催案件自动退案处理','预测拨号结果更新','更新诉讼失效日期')
SELECT T.* FROM TBL_PCCS_BIZ_ACT_TC T WHERE T.case_id = 120151021000061668
AND T.crt_time LIKE '2015-10-20%'
AND EXISTS
(
SELECT 1 FROM TBL_PCCS_BIZ_CUST_TEL AS E
WHERE T.phone = E.phone AND data_source='HOST' ) WITH ur
-----------------------------------------------------------------------------------------------------
SELECT case_id ,QUEUE_ID FROM TBL_PCCS_BIZ_CASE_CASEMAIN m WHERE value(m.QUEUE_ID,'')<>'E0100'
AND NOT EXISTS ( SELECT 1 FROM TBL_PCCS_BIZ_CASE_ACCT a WHERE m.CASE_ID=a.CASE_ID AND value(a.STIS_FLAG,'N')='N' )
------------------------------------------------------------------------------------------------------
SELECT * FROM TBL_PCCS_BIZ_CASE_CASEMAIN m WHERE value(m.QUEUE_ID,'')<>'E0100'
AND EXISTS
( SELECT 1 FROM TBL_PCCS_BIZ_CASE_ACCT a
WHERE m.CASE_ID=a.CASE_ID AND value(a.STIS_FLAG,'N')='N' )
-----------------------------------------------------------------------------------------------------
SELECT * FROM tbl_pccs_biz_case_casemain AS m
LEFT JOIN
( SELECT DISTINCT case_id,acct_no FROM tbl_pccs_biz_case_acct WHERE stis_flag !='N' ) AS a
ON m.case_id = a.case_id WHERE value(m.queue_id,'')<>'E0100'
-----------------------------------------------------------------------------------------------------
SELECT * FROM tbl_pccs_biz_case_casemain
WHERE case_id IN ( SELECT case_id FROM tbl_pccs_biz_case_acct WHERE stis_flag !='N')
AND value(queue_id,'')<>'E0100'
-----------------------------------------------------------------------------------------------------
SELECT CHK.ASST_CHK_ID, CHK.STATUS, CHK.CASE_ID, CHK.CUST_COMPANY,CHK.BEGIN_TIME, CHK.NODE_TIME_LMT,DIC.BUSIN_NAME
FROM TBL_PCCS_BIZ_CASE_ASTCHK AS CHK
LEFT OUTER JOIN TBL_PCCS_BNDICT_T_DICTIONARY AS DIC
ON CHK.CUST_COMPANY = DIC.BUSIN_ID
WHERE DATE(CHK.ASS_CHK_PROC_TIME_LMT) < ( DATE('2012-2-12')+ 1 DAY)
AND CHK.STATUS IN('02', '05', '07', '09')
AND DIC.BUSIN_TYPE_ID='PDA_Org_Center' WITH UR
-----------------------------------------------------------------------------------------------------
SELECT CHAR(UPDATE_DATE,ISO),SOURCE,SEQ,CUSTID,FUN,ACCOUNT,STATUS_CODE,STATUS_CODE_2,MEMO,PAY_TYPE,
OPERATOR,EXT, rownumber() over (ORDER BY SEQ) AS ROW_NEXT FROM BT_OPT_UPLOADHOST
-----------------------------------------------------------------------------------------------------
--正常25号大于26号,数据库中 26是大于25号的
SELECT * FROM TBL_PCCS_BIZ_CASE_CASEMAIN
WHERE IN_QUEUE_TIME <=(DATE('2020-08-30') - (2) DAY) AND QUEUE_ID ='R0204' AND CASE_ID= 12016082800
AND AS_MAINTAINER <> 'ASPECT'
-----------------------------------------------------------------------------------------------------
SELECT T.* FROM TBL_PCCSWB_BIZ_OTHER_LINK_TEL AS T
INNER JOIN WBCL_USR.TBL_PCCSWB_BIZ_CASE_CASEMAIN AS C ON T.CUST_NO=C.CUST_NO AND C.CUST_NO <>''
INNER JOIN WBCL_USR.TBL_PCCSWB_BIZ_CASE_OUTAGREE AS O ON C.CASE_ID=O.CASE_ID
AND EXISTS (SELECT 1 FROM DBCL_USR.TBL_PCCS_CONF_GL_GLOBAL as L
where O.OA_CASE_PROTL_ADJ_DATE=L.BATCH_DATE FETCH
FIRST ROWS ONLY)
AND O.DEPUTE_DATE<SUBSTR(T.CRT_TIME,1,10) AND SUBSTR(T.CRT_TIME,1,10)<O.REAL_BACK_CASE_DATE
AND O.CUST_NO<>''
-----------------------------------------------------------------------------------------------------
SELECT
caseId.CASE_ID
FROM
(
SELECT caseMain.CASE_ID
FROM TBL_PCCS_BIZ_CASE_CASEMAIN AS caseMain
WHERE
EXISTS
(
SELECT 1
FROM TBL_PCCS_BIZ_PREVIOUS_STOP_COLL AS proStopColl
WHERE proStopColl.CUST_NO=caseMain.CUST_NO)
AND caseMain.QUEUE_ID!='E0100') AS caseId
--------------------------------------------------------------------------------------------------
SELECT * FROM TBL_PCCS_FP_DEDUCT_DETAIL_BATCH fetch first 1 rows only
--清空表
ALTER TABLE TBL_PCCS_BIZ_TMP_HANDWORK_CREDITL ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE
DELETE FROM TBL_PCCS_BIZ_TMP_HANDWORK_CREDITL
DROP TABLE TBL_PCCS_FP_DEDUCT_DETAIL_BATCH
CREATE TABLE
TBL_PCCS_FP_DEDUCT_DETAIL_BATCH
(
ID_PCCS BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY,
CURRENCY VARCHAR(4),
NAME VARCHAR(20),
AGE INTEGER,
RELATION_LEVELS INTEGER DEFAULT 1,
SALARY DECIMAL(15,2) DEFAULT 0.0,
BIRTHDAY DATE,
SYS_TIME TIMESTAMP,
UPDATE_USER VARCHAR(20),
DEBIT_CARD_NO VARCHAR(30) NOT NULL,
REQ_DEDUCT_AMT DECIMAL(15,2),--double 类型
CERT_TYPE VARCHAR(4),
CERT_NO VARCHAR(30),
CRT_TIME TIMESTAMP DEFAULT CURRENT TIMESTAMP NOT NULL ,
LST_UPD_TIME TIMESTAMP NOT NULL DEFAULT CURRENT TIMESTAMP,
LST_UPD_DATE DATE NOT NULL DEFAULT CURRENT DATE,
LST_UPD_USER VARCHAR(32) NOT NULL DEFAULT 'SYSTEM',
REC_STATUS CHARACTER(1) DEFAULT '0' NOT NULL,
SCR_LEVEL CHARACTER(2) NOT NULL DEFAULT '00',
CONSTRAINT ident PRIMARY KEY(ID_PCCS)
)
insert into TBL_PCCS_FP_DEDUCT_DETAIL_BATCH_HIS( BRANCH_ORG,COMM_TYPE,CURRENCY,ACCT_NO,DEBIT_CARD_NO,
CREDIT_CARD_NO,REQ_DEDUCT_AMT,CERT_TYPE,CERT_NO,CREATE_TIME,CREATE_USER,LST_UPD_TIME, LST_UPD_USER)
values('徐家汇分行','贷款','美元','908654678756','235643535435','686787797897',1000.00,'身份',
'3709231567802864471','2015-07-22 09:37:34','SYSTEM',current timestamp ,'SYSTEM')
SELECT DISTINCT bca.CUSTID, pc.CUST_NAME, pa.CARDID, pc.PRINCIPAL_RMB_AMT, pa.FEE_AMT,
pda.BALANCE_AMT_CUR, pc.AUTO_STATE_CODE, pct.TEL_NO, pa.BRANCHID
FROM BT_RPT_CREDIT_ACCT bca
LEFT JOIN ( SELECT * FROM PCCS_CASE_ACCT WHERE PCCS_CASE_ACCT.MONEY_TYPE='156') pa
ON pa.CASEID = bca.CASEID
LEFT JOIN PCCS_CASE_CASEMAIN pc ON pc.CASEID = bca.CASEID
LEFT JOIN PCCS_CASE_DEBIT_ACCT pda ON pda.CUSTID = bca.CUSTID
LEFT JOIN( SELECT TEL_NO, custid FROM PCCS_CUST_TEL WHERE TEL_TYPE = 'MB' AND CUST_REL = 'SELF')
AS pct ON pct.CUSTID = bca.custid
-----------------------------------------------------------------------------------------------------
SELECT a.CustID, a.Tel_No, a.Dial_Time, b.DISPOSITION_NAME
FROM
BT_IMP_DAILERCONSQ a,
CONF_AUTODIAL_Disposition b
WHERE a.DispID=INT(b.DispositionId) ORDER BY a.CustID
-----------------------------------------------------------------------------------------------------
select c.ACCT_NO from TBL_PCCS_BIZ_BT_TMP_CREDIT_ACCT c where not exists
(select 1 from TBL_PCCS_BIZ_BT_TMP_DEBIT_ACCT d where d.CUST_NO = c.CUST_NO)
-----------------------------------------------------------------------------------------------------
SELECT
c.CUST_NAME,
acct.CREDIT_CARD_NO,
c.STATEMENT_DATE_STR,
SUM( CASE WHEN acct.CURRENCY = '156' THEN value(CUR_CYC_STMT_BAL,0) END) AS CYCLE_BAL_AMT_RMB,
SUM( CASE WHEN acct.CURRENCY = '840' THEN value(CUR_CYC_STMT_BAL,0) END) AS CYCLE_BAL_AMT_DOLLAR
FROM TBL_PCCS_BIZ_CASE_CASEMAIN c
LEFT JOIN TBL_PCCS_BIZ_CASE_ACCT acct ON c.CASE_ID = acct.CASE_ID
WHERE c.CASE_ID = 120150818000000611 AND c.CARD_PROD=201
GROUP BY c.CUST_NAME, acct.CREDIT_CARD_NO, c.STATEMENT_DATE_STR
ORDER BY c.CUST_NAME,acct.CREDIT_CARD_NO WITH ur
-----------------------------------------------------------------------------------------------------
SELECT * FROM TBL_PCCS_BIZ_CASE_CASEMAIN a
INNER JOIN
( SELECT COLL_ID, SCEN_ID , CENTER_NO FROM TBL_PCCS_CONF_GL_COLLIDDEAL WHERE
DAIL_TYPE IN ('PRDT', 'PRVW') ) b
ON a.CENTER_NO = b.CENTER_NO AND a.PROMPT_MSG_SEQ_NO = b.COLL_ID AND a.TRIAD_SCENID = b.SCEN_ID
WHERE VALUE(
( SELECT T.check_date FROM TBL_PCCS_BIZ_ACT_ACTION T
WHERE a.CASE_ID=T.CASE_ID AND T.check_date IS NOT NULL ORDER BY T.LST_UPD_TIME
FETCH FIRST row only) ,CURRENT DATE) <=
( SELECT BATCH_DATE FROM TBL_PCCS_CONF_GL_GLOBAL FETCH FIRST rows only)
AND(
( a.CASE_STOP_COLL_FLAG = 'N' OR a.CASE_STOP_COLL_FLAG IS NULL)
AND ( a.TEL_COLL_STOP_COL_FLG = 'N' OR a.TEL_COLL_STOP_COL_FLG IS NULL)
)
AND NOT EXISTS
( SELECT 1 FROM TBL_PCCS_BIZ_APPR_APPR T1 WHERE T1.CASE_ID=a.CASE_ID AND T1.APPR_STATUS='APPR' )
AND a.BELONG_BUSI_GRP = 'MDFY' AND a.QUEUE_ID !='E0100'
AND ( a.EVER_COLL_OPER_ID IS NULL OR EVER_COLL_OPER_ID='ASPECT')
-----------------------------------------------------------------------------------------------------
select count( distinct(case_id) ) from wbcl_usr.TBL_PCCSWB_TMP_BIZ_CASE_CASEMAIN
select CASE_ID,COUNT(1) from wbcl_usr.TBL_PCCSWB_TMP_BIZ_CASE_CASEMAIN GROUP BY CASE_ID ORDER BY 2
-----------------------------------------------------------------------------------------------------
SELECT M.CASE_ID, M.QUEUE_ID
FROM
TBL_PCCS_BIZ_CASE_CASEMAIN M, TBL_PCCS_BIZ_CASE_ACCT T, VIEW_CASE_TRANS V
WHERE M.CASE_ID=T.CASE_ID AND T.ACCT_NO= V.ACCT_NO AND ( M.QUEUE_ID = 'O0100' OR M.QUEUE_ID = 'O0200')
AND VALUE(M.COLL_NO,'')='' AND M.FAKE_TYPE IS NULL
AND EXISTS
(
SELECT 1 FROM TBL_PCCS_CONF_GL_QUEUEDEF
WHERE QUEUE_ID = M.LAST_QUEUE_NO AND TEAM_ID IN('TELE', 'MDFY'))
GROUP BY
M.CASE_ID, M.QUEUE_ID, M.MIN_PAY_BAL_OF_FS_OA_BU
HAVING
SUM(V.TRANS_AMT) >= M.MIN_PAY_BAL_OF_FS_OA_BU / 2.0
-----------------------------------------------------------------------------------------------------
select max(G.appr_ser_no) from dbcl_usr.TBL_PCCS_BIZ_APPR_OAORGCHG G where LST_UPD_DATE = date('2015-12-31')
and NEW_COLL_ORG is not null and NEW_COLL_ORG <>'' group by G.case_id
-----------------------------------------------------------------------------------------------------
select * from TBL_PCCS_BIZ_CUST_TEL where tel_no in
(
select max(tel_no) from
(
select * from TBL_PCCS_BIZ_CUST_TEL T where T.cust_no = '0019712660186'
and T.phone in(select phone from TBL_PCCS_BIZ_CUST_TEL where DATA_SOURCE in('HOST') )
)
group by phone
)
-----------------------------------------------------------------------------------------------------
-- CASE WHEN THEN 用法
SELECT MOVE_CODE,MOVE_TYPE,IS_VISIBLE,
CASE MOVE_CODE WHEN 'CUP' THEN 'W'
WHEN 'LJYD' THEN 'L'
WHEN 'BRYD' THEN 'B'
WHEN 'WNXT' THEN 'W'
ELSE 'E' END
from TBL_PCCS_CONF_GL_ACTCODEDEF
SELECT
CASE WHEN DATA_SOURCE= 'WLFK' THEN '网络发卡'
WHEN DATA_SOURCE='SJWL' THEN '社交网络'
WHEN DATA_SOURCE='BANK' THEN '人行'
ELSE '其它'
END
from TBL_PCCS_BIZ_CUST_TEL_EXPAND
-----------------------------------------------------------------------------------------------------
--N天不通
SELECT
LST_UPD_DATE, SUM(EFFECTFLAG) AS STATUS
FROM
( SELECT DISTINCT LST_UPD_DATE,
( CASE
WHEN TEL_CODE IN ('MESS','LESD', 'LESP', 'LESS','LESK', 'LESR',
'LESF','LESC''LESX','PTP', 'PTPD','PTPP', 'PTPS', 'PTPK','PTPR',
'PTPF', 'PTPC','PTPX','ALPA','QUIT','OOOC', 'FEE','REGO','MOVE','MEET',
'REST','WORK','ONTK','INSY','NOIN','KNOW','CUT','DLYD','DLYP','DLYS',
'DLYF','DLYC','DLYX','BRKD', 'BRKP','BRKS',
'BRKK','BRKR','BRKF','BRKC', 'BRKX', 'CHEK','IIVR','REP')
THEN 1 ELSE 0
END) AS EFFECTFLAG
FROM TBL_PCCS_BIZ_ACT_TC WHERE CASE_ID = 120160823000081758 )
GROUP BY LST_UPD_DATE ORDER BY LST_UPD_DATE DESC WITH ur
-----------------------------------------------------------------------------------------------------
SELECT LST_UPD_DATE, SUM(EFFECTFLAG) AS STATUS
FROM
( SELECT DISTINCT LST_UPD_DATE,--对两个字段去重复
(
CASE
WHEN MOVE_CODE IN ('XZDK','QXDK','XZZB', 'QXZB')
THEN 1 ELSE 0
END) AS EFFECTFLAG
FROM TBL_PCCS_BIZ_ACT_ACTION
WHERE CASE_ID = 120160823000081756)
GROUP BY LST_UPD_DATE ORDER BY LST_UPD_DATE DESC WITH ur
-----------------------------------------------------------------------------------------------------
values date('2015-12-03');
values substr(char('2015-12-03'),9,2);-- 数据库下标是重1开始的 截取2位
values substr(char('2015-02-30'),1,8);
-----------------------------------------------------------------------------------------------------
SELECT B.*
FROM
( SELECT A.*,
( CASE
WHEN STATEMENT_DATE_STR > ( SELECT SUBSTR(CHAR(BATCH_DATE),9,2) FROM TBL_PCCS_CONF_GL_GLOBAL )
THEN
( SELECT SUBSTR(CHAR(BATCH_DATE + 1 MONTH),1,8) || A.STATEMENT_DATE_STR
FROM TBL_PCCS_CONF_GL_GLOBAL )
ELSE
( SELECT SUBSTR(CHAR(BATCH_DATE),1,8) || A.STATEMENT_DATE_STR
FROM TBL_PCCS_CONF_GL_GLOBAL )
END) AS CYCLE_DAY
FROM TBL_PCCS_BIZ_CASE_CASEMAIN A
WHERE value(A.EVER_COLL_OPER_ID,'') <> ''
AND CENTER_NO = '027' AND QUEUE_ID = 'T0101' AND CASE_AMT >= 0.0 AND CASE_ID =120160823000081758) B
WHERE ( SELECT BATCH_DATE + 1 days FROM TBL_PCCS_CONF_GL_GLOBAL) < B.CYCLE_DAY WITH ur
-----------------------------------------------------------------------------------------------------
SELECT
A.CITY AS AREA_CODE,
A.ACT_ORG_ID,
TO_CHAR(A.DEPUTE_DATE,'yyyymm') AS OA_DATE,
( CASE
WHEN A.CURRENCY = '840'
THEN A.RECOVERY_AMT*4141
ELSE A.RECOVERY_AMT
END) AS ACHIEVE_AMT
FROM TBL_PCCS_BT_OPT_OAPMT A
-----------------------------------------------------------------------------------------------------
DELETE
FROM
WBCL_USR.TBL_PCCSWB_TMP_BIZ_CUST_TEL CS
WHERE
CS.TEL_NO not IN
(
SELECT MAX(G.TEL_NO)
FROM WBCL_USR.TBL_PCCSWB_TMP_BIZ_CUST_TEL G
GROUP BY
G.CUST_NO,G.PHONE)
-----------------------------------------------------------------------------------------------------
SELECT *
FROM
(
SELECT CUST_NO, CERT_NO, count num
FROM TBL_PCCS_BIZ_CUST_CUSTOMER GROUP BY CUST_NO, CERT_NO
) as T where T.num>2
-----------------------------------------------------------------------------------------------------
-- 67897987 截取,从倒数第二位开始截取,截取两位 为87 一个参数就是从开始位置截取到最后
--db2 下标是从1开始的
select substr(cust_no,length(cust_no)-1,2) from TBL_PCCS_BIZ_TMP_HANDWORK_CREDITL
select substr(DEPUTE_DATE,3, 2)||substr(DEPUTE_DATE,6,2)||substr(DEPUTE_DATE,9,2) from TBL_PCCS_BIZ_CASE
-- Right(CUST_NO,2) 获取倒数2位数 如0019719809655 结果 55 ;
select cust_no,Right(CUST_NO,2),left(cust_no,2) from tbl_pccs_biz_case_casemain where case_id=120151021
--从右边开始截取到7位
select right(DEPUTE_DATE, 7) from TBL_PCCS_BIZ_CASE_OUTAGREE
--从左边开始截取到7位
select LEFT(DEPUTE_DATE, 7) from TBL_PCCS_BIZ_CASE_OUTAGREE
-----------------------------------------------------------------------------------------------------
-- to_char 将其他类型的时间转换为指定格式的日期时间
select * from TBL_PCCS_BIZ_TMP_HANDWORK_CREDITL where to_char(current timestamp,'yyyy-MM-dd') ='2012-2-12'
select DEPUTE_ORG_ID,OUTS_HAND_CNT,CUR_OA_CASE_AMT,TO_CHAR(A.DEPUTE_DATE,'yyyymm') AS oa_month from TBL_PCCS_BIZ_CASE_OUTAGREE_HIS A
-- to_date 将字符串日期转化为指定格式的日期时间
select * from TBL_PCCS_BIZ_TMP_HANDWORK_CREDITL where to_date('2012-02-12','yyyy-MM-dd') ='2012-2-12'
INSERT INTO TBL_PCCS_CONF_OA_OUTCA (LST_UPD_DATE) values(to_date('1991-02-14','yyyy-MM-dd'));
select * from TBL_PCCS_BIZ_CUST_TEL
--trim 为去空 length 为长度
SELECT length(trim(PHONE)) FROM TBL_PCCS_BIZ_CUST_TEL WHERE PHONE='12345678910'
select * from TBL_PCCS_BT_DEDUCT_DETAIL where length(trim(DEBIT_CARD_NO)) <= 21 order by BRANCH_ORG asc
-----------------------------------------------------------------------------------------------------
SELECT T.*
FROM dbcl_usr.TBL_PCCS_BIZ_APPR_OAORGCHG T WHERE T.APPR_TYPE= 'ORG'AND T.APPR_STATUS='PASS' AND T.STATUS='Y'
AND T.appr_ser_no IN
(
SELECT MAX(G.appr_ser_no)
FROM dbcl_usr.TBL_PCCS_BIZ_APPR_OAORGCHG G
WHERE LST_UPD_DATE = DATE('2015-12-31')
GROUP BY G.case_id)
AND NEW_COLL_ORG IS NOT NULL
AND NEW_COLL_ORG <>''
select DIRE_COLL_CNT as 直催 ,PACKAGE_CNT as 打包 ,LAW_CNT as 司法,BEF_DEPUTE_CNT as 委前 from TBL_PCCS_BIZ_CASE_CASEMAIN
select h.case_id,h.cust_id from TBL_BT_TMP_HOST h where IN_QUEUEID = 'T' and OUT_QUEUEID in ('O0100','O0100')
UPDATE pccs_case_casemain
SET PRE_DAY_FLAG = 'Y', UPDATE_DATE = '2012-1-12',UPDATE_TIME = CURRENT TIMESTAMP,UPDATE_USER = 'SYSTEM'
WHERE QUEUEID IN( 'O0500', 'O0601') AND ( date('2012-2-12') +5 DAY) >= OA_CASE_DEADLINE;-- (current date + 5 day )
-----------------------------------------------------------------------------------------------------
-- ROW_NUMBER() OVER() AS ROW_NEXT 增加行号,从1开始
select case_id,cust_no,cust_name,crt_time ,ROW_NUMBER() OVER () AS ROW_NEXT from TBL_PCCS_BIZ_CASE_CASEMAIN
-- ROW_NUMBER() OVER (ORDER BY 字段column ) AS rownum 增加行号,按某列排序
select row_number() OVER (ORDER BY LST_UPD_DATE DESC) AS ROW_NEXT,t.* from TBL_PCCS_BIZ_CASE_CASEMAIN t
--DB2 分页
select * from (
select ROW_NUMBER() OVER (ORDER BY LST_UPD_DATE DESC) AS ROWNUM,
CASE_ID,CUST_NO,CENTER_NO,QUEUE_ID FROM TBL_PCCS_BIZ_CASE_CASEMAIN ) A
WHERE ROWNUM >20 AND ROWNUM<=30
-----------------------------------------------------------------------------------------------------
--查看表结构
select * from sysibm.columns where table_schema='DBCL_USR' and table_name='TBL_PCCS_BIZ_CASE_CASEMAIN';
--修改变名字
RENAME TABLE 表名 TO 新表名
--增加子增长
alter table mafenglei alter column OA_CASE_PROTL_DL_LOG_ID set generated by default as identity
--增加一列
alter table mafenglei add column address varchar(20)
alter table DBCL_USR.TBL_PCCS_BIZ_CUST_SMISORG add column CRT_TIME TIMESTAMP not null default CURRENT TIMESTAMP;
alter table DBCL_USR.TBL_PCCS_BIZ_CUST_SMISORG add column LST_UPD_DATE DATE not null default CURRENT DATE;
alter table DBCL_USR.TBL_PCCS_BIZ_CUST_SMISORG add column LST_UPD_USER VARCHAR(32) not null default 'SYSTEM';
alter table DBCL_USR.TBL_PCCS_BIZ_CUST_SMISORG add column SCR_LEVEL CHAR(2) not null default '00';
--删除一列
alter table TBL_PCCS_BT_IMP_CSWF_PRE2 drop column lst_upd_date
--修改表字段类型
-- 其它数据库中
alter table 表名 alter column update_user varchar(20)
--da2 数据库中
alter table table_name alter column column_nmae set data type type
-- 如: alter table T alter column QUEUEID set data type varchar(50)
--OR用法 用OR要注意 括号
select * from TBL_PCCS_BIZ_CASE_CASEMAIN where QUEUE_ID ='O0704'
and DEPUTE_ORG_ID is not null and (EVER_COLL_OPER_ID is null OR TEMP_COLL_OPER_ID is null )
SELECT * FROM TBL_PCCS_CONF_GL_CASENOTES WHERE (SOURCE_QUEUE = 'O0300' OR SOURCE_QUEUE = '*')
-----------------------------------------------------------------------------------------------------
-- move_code <> '’ 是等于空,等于NNULL的数据都包括在内
select A.case_id from TBL_PCCS_CASE_GRADECODE A where A.move_code <> '' with ur
--coalesce函数 如果OTH_LINKMAN_PH_LOSS_TY 没有值就返回3
select coalesce(OTH_LINKMAN_PH_LOSS_TY,3,4,5) from TBL_PCCS_CUST_NOCONINFO
-----------------------------------------------------------------------------------------------------
SELECT
A.CASE_ID, A.CUST_NO, A.CRD_HLR_PHON_IN_VALI_TP,
A.CRD_HLR_C_TEL_IN_VALI_TP, A.CRD_HLR_H_TEL_IN_VALI_TP, A.OTH_LINKMAN_PH_LOSS_TY,
B.QUEUE_ID,B.DELINQUENT_BUCKET, B. CASE_AMT
FROM
(
SELECT
CASE_ID, CUST_NO, CRD_HLR_PHON_IN_VALI_TP, CRD_HLR_C_TEL_IN_VALI_TP,
CRD_HLR_H_TEL_IN_VALI_TP, OTH_LINKMAN_PH_LOSS_TY
FROM TBL_PCCS_CUST_NOCONINFO ) AS A,
(
SELECT
CASE_ID, CUST_NO, QUEUE_ID,DELINQUENT_BUCKET, CASE_AMT FROM TBL_PCCS_BIZ_CASE_CASEMAIN
WHERE QUEUE_ID IN ('R0101', 'R0102')) B
WHERE A.CASE_ID = B.CASE_ID AND A.CUST_NO = B.CUST_NO WITH ur
------------------------------------------------------------------------------------------------------
SELECT a.CUST_NO, a.PHONE , a.DIAL_TIME, b.CONF_CODE_NAME
FROM TBL_PCCS_BT_IMP_DAILERCONSQ a,TBL_PCCS_CONF_AUTODIAL_DISPOSITION b
WHERE a.DIAL_RESULT=INT(b.CONF_CODE) ORDER BY a.CUST_NO , a.DIAL_TIME
-----------------------------------------------------------------------------------------------------
INSERT INTO TBL_PCCS_BT_TMP_INFORCA
( CASE_ID,CENTER_NO, QUEUE_ID, CASE_AMT, DELINQUENT_BUCKET, LST_UPD_DATE )
SELECT
CASE_ID, CENTER_NO, QUEUE_ID, CASE_AMT, DELINQUENT_BUCKET, CURRENT DATE AS LST_UPD_DATE
FROM TBL_PCCS_BIZ_CASE_CASEMAIN C
WHERE VALUE(EVER_COLL_OPER_ID,'')= ''
AND EXISTS
(
SELECT 1 FROM TBL_PCCS_CONF_GL_CACOL A
WHERE A.DIV_TYPE = 'MDFY' AND A.QUEUE_ID = C.QUEUE_ID AND A.CENTER_NO = C.CENTER_NO
)
-----------------------------------------------------------------------------------------------------
insert into TBL_PCCS_BIZ_TMP_ASSIGEN_PLANS_WB (OA_ORG_ID,CASE_AREA ) (select OA_ORG_ID ,CASE_AREA from TBL_PCCS_BIZ_ASSIGEN_PLANS_WB)
-----------------------------------------------------------------------------------------------------
SELECT a.CASE_ID, a.NEW_COLL_ORG, a.COLL_WAY, a.ASSIGN_COLL_OPER_ID FROM TBL_PCCS_BIZ_APPR_OAORGCHG a
INNER JOIN TBL_PCCS_BIZ_CASE_CASEMAIN b ON a.CASE_ID = b.CASE_ID AND b.QUEUE_ID = ''
WHERE a.APPR_SER_NO IN
(
SELECT MAX(APPR_SER_NO) APPR_SER_NO
FROM TBL_PCCS_BIZ_APPR_OAORGCHG
WHERE APPR_DATE = CURRENT DATE AND APPR_STATUS = 'PASS' GROUP BY CASE_ID
)
-----------------------------------------------------------------------------------------------------
SELECT * from TBL_PCCS_BIZ_CASE_CASEMAIN where create_time >= '2015-09-10 00:00:00'
UPDATE PCCS_CUST_SMISSTAFF SET USERID = 'SCO'||'STAFF_ID'
SELECT CASEID FROM PCCS_ACT_ACTION WHERE EXISTS(
SELECT 1 FROM TEMP_HIS_PCCS_CASE_CASEMAIN A WHERE A.CASEID=PCCS_ACT_ACTION.CASEID
)
-----------------------------------------------------------------------------------------------------
select A.case_id , A.rank_code, A.move_code,A.queueid from TBL_PCCS_CASE_GRADECODE A
where A.id_pccs in(select max(id_pccs) from TBL_PCCS_CASE_GRADECODE group by case_id)
-----------------------------------------------------------------------------------------------------
-- AND VALUE(R.TEMPLATE_NO,'') R.TEMPLATE_NO如果有值就是值本身,如果没有值,就为''
SELECT
bit.CUST_NO AS CUST_NO,
MAX(bit.STRATEGY_NO) AS STRATEGY_NO,
MAX(bit.TRIAD_LETTER_ID) AS TRIAD_LETTER_ID
FROM
TBL_PCCS_BT_IMP_TRIADSTR bit
WHERE
TRIAD_LIMIT_NO IS NOT NULL
AND TRIAD_LIMIT_NO != ''
AND EXISTS
(
SELECT
1
FROM
TBL_PCCS_CONF_RL_TRIADTEMPLATE R
WHERE
R.TRIAD_TYPE = 'MAIL'
AND R.TMPLATE_TYPE = 'MAIL'
AND R.TEMPLATE_NO='pppp'
AND R.TRIAD_CODE = bit.TRIAD_LETTER_ID
AND VALUE(R.TEMPLATE_NO,'') <> ''
AND VALUE('ppppp','') <> '')
AND EXISTS
(
SELECT
1
FROM
TBL_PCCS_BIZ_CASE_CASEMAIN pcc
WHERE
pcc.CUST_NO = bit.CUST_NO
AND VALUE(pcc.QUEUE_ID,'') <> 'E0100'
AND value(pcc.LETTER_STOP_COLL_FLG,'') <> 'Y'
AND NOT EXISTS
(
SELECT
1
FROM
TBL_PCCS_CASE_CACACCT CACACCT
WHERE
pcc.case_id=CACACCT.case_id
AND SUBSTR(bit.TRIAD_LETTER_ID,1,1)< 'pppp') )
GROUP BY
bit.CUST_NO
-------------------------------------------------------------------------------------------------------------
--如果指定字段就插入指定字段的值,如果不指定就插入表中的所有字段
--问题 根据连接条件 如果找到 BT_IMP_CSWF_PRE 表里存在两条数据 ,匹配 BT_IMP_CSWF_PRE2
--表中的数据就无法匹配 就会报 -788 数据重复问题 ,所要要保证 BT_IMP_CSWF_PRE 不能有重复数据
MERGE
INTO
BT_IMP_CSWF_PRE2 AS CS2 -- 默认插入这个表
USING
BT_IMP_CSWF_PRE AS CS
ON
CS2.ACCTID = CS.ACCTID
WHEN MATCHED
THEN
UPDATE
SET
CS2.CHEAT_TYPE = CS.CHEAT_TYPE,
CS2.BRANCH_BLAME = CS.BRANCH_BLAME,
CS2.COLL_MODE = CS.COLL_MODE,
CS2.CSWFID = CS.CSWFID,
CS2.OA_NUM = CS.OA_NUM
WHEN NOT MATCHED
THEN
INSERT (CS2.ACCTID,CS2.CHEAT_TYPE,CS2.BRANCH_BLAME,CS2.COLL_MODE,CS2.CSWFID,CS2.OA_NUM,CARDID )
VALUES( CS.ACCTID, 'e3','name', 'CODE', 'er', null, NULL )
-----------------------------------------
MERGE
INTO
TBL_PCCS_BIZ_CUST_ADDR A
USING
( SELECT * FROM TBL_PCCS_BT_IMP_ADDR WITH ur)B
ON
( A.REC_STATUS=B.REC_STATUS AND A.CUST_NO=B.CUST_NO
AND A.SYS_ADDR_TYPE=B.ADDR_TYPE AND A.DATA_SOURCE = 'HOST'
AND A.LETTER_POST_ADDR1=B.LETTER_POST_ADDR1 AND A.LETTER_POST_ADDR2=B.LETTER_POST_ADDR2
AND A.REC_STATUS='0'
)
WHEN MATCHED
THEN
UPDATE
SET
A.LETTER_POST_ADDR1=B.LETTER_POST_ADDR1,
A.LETTER_POST_ADDR2=B.LETTER_POST_ADDR2,
A.MAIN_CONTACT_ADDR3=B.MAIN_CONTACT_ADDR3,
A.POST_CODE=B.POST_CODE,
A.BACKLETTER_FLAG=NULL,
A.CITY=B.CITY,
A.LST_UPD_TIME= CURRENT TIMESTAMP,
A.LST_UPD_USER='SYSTEM',
A.LST_UPD_DATE = '2015-11-23'
WHEN NOT MATCHED
THEN
INSERT
(
A.CUST_NO,A.SYS_ADDR_TYPE,A.ADDR_TYPE,A.POST_CODE, A.LETTER_POST_ADDR1,A.LETTER_POST_ADDR2,
A.MAIN_CONTACT_ADDR3,A.NAME, A.REL_WITH_CUST,A.CITY,A.DATA_SOURCE,A.BACKLETTER_FLAG,
A.VISIT_SUM_CODE, A.CRT_TIME,A.CRT_USER, A.LST_UPD_TIME,A.LST_UPD_USER,A.REC_STATUS,
A.SCR_LEVEL,A.LST_UPD_DATE
)
VALUES
(
B.CUST_NO, B.ADDR_TYPE, B.ADDR_TYPE, B.POST_CODE, B.LETTER_POST_ADDR1, B.LETTER_POST_ADDR2,
B.MAIN_CONTACT_ADDR3, B.NAME, B.REL_WITH_CUST, B.CITY, 'HOST', '', NULL,
CURRENT TIMESTAMP, 'SYSTEM', CURRENT TIMESTAMP, 'SYSTEM', '0', '00','2015-2-12'
);
-------------------------------------------------------------------------------------------------------------
select HOUR(CURRENT TIMESTAMP),MINUTE(CURRENT TIMESTAMP) from (VALUES 2) AS TEMPLETE
-------------------------------------------------------------------------------------------------------------
select * from TBL_PCCS_TEMP_TABLE
--删除视图
drop view TBL_PCCS_TEMP_TABLE
--创建视图
CREATE VIEW TBL_PCCS_TEMP_TABLE(
CASE_ID,CUST_NO,CUST_NAME,QUEUE_ID,CENTER_NO,BRANCH_ORG,CASE_AMT,CRT_TIME,ACCT_NO
) AS
SELECT T.CASE_ID,T.CUST_NO,T.CUST_NAME,T.QUEUE_ID,T.CENTER_NO,T.BRANCH_ORG,T.CASE_AMT,
T.CRT_TIME,A.ACCT_NO FROM TBL_PCCS_BIZ_CASE_CASEMAIN T
LEFT JOIN TBL_PCCS_BIZ_CASE_ACCT A ON T.CASE_ID = A.CASE_ID
WHERE A.ACCT_NO <>''
-------------------------------------------------------------------------------------------------------------
--创建索引
CREATE INDEX searc ON mafenglei(age)
CREATE INDEX 索引名 ON 表名(指定的列)
--删除索引
DROP INDEX searc
--创建序列
CREATE SEQUENCE MAFENGLEI_SQL
--查询下一个序列
VALUES(MAFENGLEI_SQL.nextval)
--删除序列
DROP SEQUENCE MAFENGLEI_SQL
--使用序列插入数据
INSERT INTO mafenglei(id_pccs,name,age,saralery,monery,birthday)
values(MAFENGLEI_SQL.nextval,'小马',25,4500.30,5000,'2015-12-30')
##*****************以下都是MYSQL中的操作*********************************************************************
##*****************MySQL_数据分页查询(limit用法)***********************************************************
##当前股票前26天的历史行情数据
SELECT h.tick,h.dt,h.OPEN,h.high,h.low,h.CLOSE,h.vol,h.amount,h.t_rate
FROM hq_price h
LEFT JOIN hq_stock_tp t
ON h.tick =t.tick AND h.dt=t.dt
WHERE h.tick='002075' AND t.dt IS NULL AND h.dt <='2015-02-27'
ORDER BY dt DESC LIMIT 26
##取前5条数据
SELECT * FROM hq_stock_tp LIMIT 0,5
## 或 SELECT * FROM hq_stock_tp LIMIT 5
##取第11条到第15条数据,共5条
SELECT * FROM hq_stock_tp LIMIT 10,5
##取出2540后面的20条数据 ,就是一页20条 当前是2540/20= 127 页
##可以让页面一页显示50条 ,查找5页的时候就是 50*5 = 250,就是 limit 250,50
select * from kam.topic_hp_news limit 2540,20
-------------------------------------------------------------------------------------------------------------
select * from kam.event_timeline where abbr like concat("%",'中',"%")
##将字符串转化为数字再排序
SELECT * FROM topic_hp_show WHERE `date`='20180322' ORDER BY CONVERT(idx,SIGNED) ASC
##***********************************************************************************************************
CREATE TABLE `equity_bonus_jc` (
`id` bigint(10) UNSIGNED NOT NULL AUTO_INCREMENT, ##unsigned表示无负号的意思,也就是非负数,只用于整型
`secu` VARCHAR(20) NOT NULL COMMENT '' ,
`exrdt` DATE NOT NULL COMMENT '除权除思日',
`givsr` DECIMAL(15,6) DEFAULT NULL COMMENT '运转比列',
`bns` DECIMAL(15,6) DEFAULT NULL COMMENT '派息比例',
`amou` DECIMAL(15,6) DEFAULT NULL COMMENT '',
`aft_bns` DECIMAL(15,6) DEFAULT NULL COMMENT '',
`sid` VARCHAR(20) DEFAULT NULL COMMENT '',
`y` VARCHAR(10) DEFAULT NULL COMMENT '',
`givsr_stock` DECIMAL(15,6) DEFAULT NULL COMMENT '送股比例',
`givsr_transf`DECIMAL(15,6) DEFAULT NULL COMMENT '转增比例',
`tpsj` INT(11) NOT NULL COMMENT '',
`upt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`date` char(10) comment '交易日期',
PRIMARY KEY (`id`),
UNIQUE KEY `dt_secu` (`exrdt`,`secu`),
KEY `secu_dt` (`secu`,`exrdt`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='停牌信息记录表'
-------------------------------------------------------------------------------------------------------------
CREATE TABLE `topic_hp_news` (
`id` int(20) unsigned NOT NULL AUTO_INCREMENT,
`objectid` varchar(50) DEFAULT NULL,
`url` varchar(200) DEFAULT NULL,
`sum` text,
`t` varchar(400) DEFAULT NULL,
`key` varchar(20) DEFAULT NULL,
`dt` varchar(30) DEFAULT NULL,
`com` text,
`update_time` datetime DEFAULT NULL,
`insert_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=112440 DEFAULT CHARSET=utf8
CREATE TABLE `corpus_param` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`corpus_id` int(11) DEFAULT NULL COMMENT '语料外键id',
`name` varchar(100) DEFAULT NULL COMMENT '参数名称',
`entity_type` varchar(100) DEFAULT NULL COMMENT '实体类型',
`value` varchar(100) DEFAULT NULL COMMENT '参数值',
PRIMARY KEY (`id`),
KEY `curpos_id_index` (`corpus_id`),
CONSTRAINT `FK_Reference_13` FOREIGN KEY (`corpus_id`) REFERENCES `corpus` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='用户提问参数'
-------------------------------------------------------------------------------------------------------------
##删除一列
ALTER TABLE TBL_PCCS_BT_IMP_CSWF_PRE2 DROP COLUMN lst_upd_date
##修改表中字段名称
ALTER TABLE 表名 CHANGE 现有字段名称 修改后字段名称 数据类型
##将表nlp_dict_event中,列名update_time改为upt
ALTER TABLE nlp_dict_event CHANGE update_time upt TIMESTAMP;
ALTER TABLE equity_bonus_jc CHANGE givsr1 givsr_stock DECIMAL(15,6) DEFAULT NULL
## 增加字段
alter table nlp_dict_event add upu VARCHAR(300)
##修改字段类型
alter table nlp_dict_product modify state Int;
##删除数据
delete from kam.`topic_hp_news` WHERE id IN (112442,112440)
##查看表结构
SHOW CREATE TABLE kam.topic_hot
DESC kam.topic_hot
-------------------------------------------------------------------------------------------------------------
##用Linux登录远程myql数据库
## ps aux|grep mysql
##进入mysql主目录 输入以下命令 ---> mysql -u 用户名 -p -> 输入密码就行了
## 查看当前有哪些数据库
SHOW DATABASES;
## 使用当前数据库(ced)
USE ced;
## 查看当前有哪些表
SHOW TABLES;
-------------------------------------------------------------------------------------------------------------
##CREATE TABLE语句可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引
##ALTER TABLE用来创建普通索引、唯一索引、主键索引。
ALTER TABLE table_name ADD INDEX index_name (column_list)
ALTER TABLE table_name ADD UNIQUE (column_list)
ALTER TABLE table_name ADD PRIMARY KEY (column_list)
##ALTER TABLE可以在同时创建多个索引,多列时各列之间用逗号分隔。
##CREATE INDEX可对表增加普通索引或UNIQUE索引。
CREATE INDEX index_name ON table_name (column_list)
CREATE UNIQUE INDEX index_name ON table_name (column_list)
##具有与ALTER TABLE语句中相同的含义,索引名不可选。另外,不能用CREATE INDEX语句创建PRIMARY KEY索引。
##删除索引
##可利用ALTER TABLE或DROP INDEX语句来删除索引
DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY
## 查看表创建的索引
SHOW INDEX FROM kam.hq_stock_tp
##删除索引
ALTER TABLE 表名 DROP FOREIGN KEY 外键(区分大小写);
ALTER TABLE corpus_user_say_annoted DROP FOREIGN KEY corpus_user_say_annoted_ibfk_1
##添加索引
ALTER TABLE corpus_user_say_annoted ADD FOREIGN KEY (corpus_usid) REFERENCES corpus_user_say (id);
-------------------------------------------------------------------------------------------------------------
## 创建临时表
create table nlp_dict_industry_temp as select * from nlp_dict_industry where id in (SELECT MAX(id) id FROM nlp_dict_industry GROUP BY NAME)
## 插入临时表数据
insert into nlp_dict_industry select * from nlp_dict_industry_temp
-------------------------------------------------------------------------------------------------------------
CREATE TABLE `hq_stock_tp` (
`id` INT(10) PRIMARY KEY AUTO_INCREMENT,
`dt` DATE NOT NULL COMMENT '日期',
`tick` VARCHAR(20) NOT NULL COMMENT '股票code',
`tpsj` INT(11) NOT NULL COMMENT '停牌天数',
`upt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY `tick` (`dt`,`tick`) USING BTREE,
UNIQUE KEY `tick_dt` (`tick`,`dt`),
KEY `dt` (`dt`) USING BTREE
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='停牌信息记录表'
## 主键不存在则insert 否 update
## ON DUPLICATE KEY UPDATE
INSERT INTO hq_stock_tp (dt, tick, tpsj) VALUES('2016-11-16','006398',10) ON DUPLICATE KEY UPDATE tpsj=VALUES(tpsj), dt ='2016-11-19'
INSERT INTO `hq_stock_tp`(`id`,`dt`,`tick`,`tpsj`,`upt`) VALUES
(94491,'1991-02-14','000001',1,'2015-09-07 10:43:01'),
(94492,'1991-02-19','000001',2,'2015-09-07 10:43:01'),
(94500,'1991-03-20','000001',6,'2015-09-07 10:43:01'),
(94501,'1991-03-21','000001',7,'2015-09-07 10:43:01'),
(94502,'1991-03-22','000001',8,'2015-09-07 10:43:01'),
(94503,'1991-03-25','000001',9,'2015-09-07 10:43:01'),
(94504,'1991-03-26','000001',10,'2015-09-07 10:43:01');
##*****************一下都是ORACLE中的操作*********************************************************************
--oracle 中的分页
SELECT T.* FROM
(
SELECT B.ob_seccode_0007, A.f004n_0093, A.f005n_0093, A.f012d_0093, A.ob_object_id, ROWNUM RN
FROM tb_company_0093 A
JOIN tb_public_0007 B
ON A.ob_orgid_0093=B.ob_secid_0007
WHERE B.f003v_0007='A股'
AND A.f002V_0093='A股'
) T
WHERE T.RN BETWEEN 10 AND 30
select t.* from (
select f005n_0093 ,ob_object_id,rownum as rn from tb_company_0093
) T
where T.rn >20 and T.rn<30
-------------------------------------------------------------------------------------------------------------
select t.* from ( select textid, f002v as title, rectime as pdt, f003v as jcurl, f004v as jcext, f006v as types,
f001d as pub, rectime, modtime, rownum as rn from info3015
where textid in ( '1202075322' )
and ( rectime>=to_date('2016-03-20','yyyy-mm-dd') and rectime<=to_date('2016-04-02','yyyy-mm-dd') or modtime>=to_date('2016-03-20','yyyy-mm-dd')
and modtime<=to_date('2016-04-02','yyyy-mm-dd') and textid='1202075322' ) order by textid ) t
where t.rn>0 and t.rn<200
-------------------------------------------------------------------------------------------------------------
-- to_timestamp 可以指定更加具体的时间 如 2010-12-18 14:14:15.00005
select * from nlp_news_concept where upt between to_timestamp('2017-05-08 23:59:59.999','yyyy-mm-dd hh24:mi:ss.ff')
and to_timestamp('2017-11-11 00:00:00.0','yyyy-mm-dd hh24:mi:ss.ff')
-- to_date 可以指定时分秒 如 2010-12-18 14:14:15
select * from nlp_news_concept where upt between to_date('2017-05-08 23:59:59','yyyy-mm-dd hh24:mi:ss')
and to_date('2017-11-11 00:00:00','yyyy-mm-dd hh24:mi:ss')
select to_date('2016-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')-sysdate from dual;
select to_timestamp('2016-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')-systimestamp from dual;
-------------------------------------------------------------------------------------------------------------
--增加一列 字段为stat
alter table orcl_train_model add stat number(4)
-- 修改字段长度
alter table 表名 modify 字段名 字段类型(字段长度);
-- 修改字段名称
alter table 表名 rename column 旧字段 to 新字段
-- 删除字段
alter table 表名 drop column 字段;
--修改表名
rename 原表名 to 新表名
rename nlp_dict_entity_xiaoma to nlp_test
--把一张表的数据导入到另一张表
insert into nlp_dict_entity SELECT * FROM NLP_DICT_ENTITY_temp
--添加主键约束
alter table nlp_dict_entity add constraint pk_nlp_dict_entity primary key (id)
--添加唯一性约束
alter table nlp_dict_entity add constraint constraint_id unique(id)
-- 删除约束关系
alter table nlp_dict_entity drop constraint constraint_id
-------------------------------------------------------------------------------------------------------------
--创建中国地图表
drop table china_address
create table china_address
(
id number(4) not null primary key,--主键 此时还不是自增的
address_id number(4),
name varchar2(30) not null,
price number(7,2),--小数位
status char(1),
creatime date default sysdate not null,
upt timestamp default current_timestamp
);
--创建中国地图序列 来实现主键自增加
drop sequence china_address_sequ
create sequence china_address_sequ start with 1 increment by 1;
--查询下一个序列
select china_address_sequ.nextval from dual
select * from china_address
--插入带自增主键的sql 前提创建序列; 使用china_address_sequ.nextval来实现
insert into china_address(id,address_id,name,price,status,creatime)
values(china_address_sequ.nextval,8,'长江三角洲',2.312,'1',sysdate)
-----------------------------------------------------------------------
--如果在插入语句中不调用序列来获取递增主键的话 可以用触发器来实现
drop trigger china_address_increase_tr
--创建中国地图主键自增长触发器
create or replace trigger china_address_increase_tr --触发器名称 china_address_increase_tr
before insert on china_address -- 表的名字 china_address
for each row -- 固定语句
begin
select china_address_sequ.nextval into:new.id from dual; --触发器内容 new.id这里的id 就是表中的id字段为自增长
end;
--插入 实际是用触发器来实现主键自增加
insert into china_address(address_id,name,price,status,creatime) values(8,'长江三角洲',2.312,'1',sysdate)
-------------------------------------------------------------------------------------------------------------
--重命名
rename nlp_dict_company to nlp_dict_company_temp
--把一张表的数据导入到另一张表
insert into nlp_dict_company SELECT * FROM nlp_dict_company_temp
drop table nlp_dict_company;
--创建表
create table
nlp_dict_company
(
id number(20),
code varchar2(32),
abbr varchar2(128),
upt timestamp,
primary key (id)
);
drop sequence seq_news_company;
--创建自增序列
create sequence seq_news_company start with 1 increment by 1;
drop trigger trgr_news_company;
--创建触发器 实现主键自增
create or replace trigger trgr_dict_company
before insert on nlp_dict_company
for each row
begin
:new.id := seq_news_company.nextval;
end;
-------------------------------------------------------------------------------------------------------------
select ob_bondid_0067,count(*) from tb_bond_0067 group by ob_bondid_0067 order by 2 desc
select to_char(OB_RECTIME_0067, 'yyyy') , count(1) from tb_bond_0067
group by to_char(OB_RECTIME_0067, 'yyyy')
-------------------------------------------------------------------------------------------------------------
select
f007d_0067 as f007d0067,
f001v_0067 as f001v0067,
f006v_0067 as f006v0067,
f002v_0067 as f002v0067,
f003v_0067 as f003v0067,
f004v_0067 as f004v0067,
f005v_0067 as f005v0067
from (
select rownum as rn, a.*
from tb_bond_0067 a
where to_char(a.ob_rectime_0067,'yyyy-mm-dd') between '2009-08-05' and '2016-08-05'
order by a.ob_object_id
) b
where b.rn > 3and b.rn <= 200 order by rn
-------------------------------------------------------------------------------------------------------------
<select id="fetchJuchaoData" resultType="com.csf.ada.datashift.refactor.entity.juchao.bond.TbBond0067">
<![CDATA[
select
ob_subid_0067 as obsubid0067,
ob_bondid_0067 as obbondid0067,
ob_bondname_0067 as obbondname0067,
ob_isvalid_0067 as obisvalid0067,
ob_object_id as obObjectId
from
( select rownum as rn, a.*
from tb_bond_0067 a
where a.ob_rectime_0067 >= #{fromDate} and a.ob_rectime_0067 < #{toDate}
order by a.ob_object_id
) b
where b.rn > #{startRow} and b.rn <= #{endRow} order by rn
]]>
</select>
-------------------------------------------------------------------------------------------------------------
--1.创建索引
CREATE INDEX 索引名 ON 表名 (列名)
create index member_search on member (memberMail)
--2.创建唯一索引:
CREATE unique INDEX 索引名 ON 表名 (列名)
create unique index member_name on member (memberName)
--删除索引
drop index member_search;
-- 注:当表结构被删除时,有其相关的所有索引也随之被删除。
--1. 根据索引名,查询被索引的字段:
select * from user_ind_columns where index_name=upper('member_search'); -- member_search 为索引名称
--根据表名,查询一张表的所有索引信息
select * from user_indexes where table_name=upper('member') -- member 为表名
--查询表的所有列及其属性
select * from user_tab_columns where table_name=upper('member'); --member 为表名
-------------------------------------------------------------------------------------------------------------
-- 修改序列的名称
--alter sequence 旧序列名称 rename to 新序列名称;
alter sequence seq_table rename to seq_table_test;
-- 修改索引名称
--alter index 旧索引名称 rename to 新索引名称;
alter index index_base_stock_tick rename to indcsf_base_stock_tick;
-------------------------------------------------------------------------------------------------------------
--获取 表tb_bond_0067的建表语句
select dbms_metadata.get_ddl('TABLE','TB_BOND_0067') from dual;//这里表名要大写
/*查询锁表*/
select
s.username,
decode(l.type, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,
o.owner,
o.object_name,
o.object_type,
s.sid,
s.serial#
from gv$session s, gv$lock l, dba_objects o
where l.sid = s.sid and l.id1 = o.object_id(+) and s.username is not null;
/*
USERNAME LOCK_LEVEL OWNER OBJECT_NAME OBJECT_TYPE SID SERIAL#
ZHAOSHANG (null) SYS ORA$BASE EDITION 77 2036
SYS ROW LOCK (null) (null) (null) 195 25941
ZHAOSHANG TABLE LOCK ZHAOSHANG FIN_SAM_PRODUCT_ITEM_VO TABLE 205 60915
备注 : 此时 FIN_SAM_PRODUCT_ITEM_VO 表已经被招商这个用户 锁定了
*/
-- 杀掉session 释放被锁住的这张表
alter system kill session '205,60915';
-- 查看session 和session总数
select count(*) from v$session
select * from v$session
--查看不同用户的连接数
select username,count(username) from v$session where username is not null group by username
##*****************以下都是sql server中的操作*********************************************************************
CREATE TABLE
BLOCK_MEMBER
(
ID INT NOT NULL,
BLOCKTYPE TINYINT,
BLOCKCODE NVARCHAR(50 ) COLLATE Chinese_PRC_CI_AS,
STOCKCODE NVARCHAR(50 ) COLLATE Chinese_PRC_CI_AS,
USESTATUS TINYINT,
BEGINDATE INT,
ENDDATE INT,
TMSTAMP BIGINT,
ENTRYDATE DATETIME,
CHKTMS BIGINT,
CONSTRAINT PK_BLOCK_MEMBER PRIMARY KEY (ID)
);
-------------------------------------------------------------------------------------------------------------
--sql server 中的分页
select
pre_rpt_id as prerptid,
reliability as reliability,
entrydate as entrydate,
entrytime as entrytime,
tmstamp as tmstamp,
cmb_rpt_id as cmb_rpt_id
from (
select *,row_number() over(order by pre_rpt_id asc) as rt from t_pre_reliability
where entrydate > '1900-01-01' and entrydate <= '2016-07-27'
) b
where b.rt > 10 and b.rt <= 200
-----------------------------------------------
--分页
select * from (
select *,row_number() over(order by PRE_RPT_ID asc) as rt from (
select PRE_RPT_ID from t_pre_reliability
where left(convert(varchar(24),entrydate,112),8) like '20120214%'
) as b
) as a where a.rt>0 and a.rt<= 1000
-------------------------------------------------------------------------------------------------------------
select
id as id,
blocktype as blocktype ,
blockcode as blockcode ,
stockcode as stockcode ,
usestatus as usestatus,
begindate as begindate,
enddate as enddate,
tmstamp as tmstamp,
entrydate as entrydate,
chktms as chktms
from (
select *,row_number() over(order by id asc) as rt from block_member
where entrydate > #{fromDate} and entrydate <= #{toDate}
) b
where b.rt > #{startRow} and b.rt <= #{endRow}
select count(*) from con_forecast_idx where entrydate > '2015-07-27' and entrydate >= '2015-07-27'
-------------------------------------------------------------------------------------------------------------
-- 112 yyyyMMdd
-- 120 yyyy-MM-dd hh:mm:ss
-- 将 entrydate字段 从Timestamp 类型 的转为string类型的
select convert(varchar(24),entrydate,120) from t_pre_reliability
--将时间进行转化,然后模糊查询
select count(*) from t_pre_reliability where left(convert(varchar(24),entrydate,112),8) like '20170109%'
select top 3 * from t_pre_reliability