oracle常用的关键字
Oracle基础数据类型:4类:
字符型:字符串
char(最大2000), nchar(最大1000, 支持Unicode)--->固定长度
varchar2(最大4000), nvarchar2(最大2000, 支持Unicode)--->可变长度
数字类型
包括整数和小数
number(有效数字, 总位数);
float()--->存储二进制类型的数据, 1-126位0.30103
日期类型:时间
date:取值范围:公元前4712年1月1号---公元9999年12月31号, 可以直接精确到秒
timestamp(时间戳: 更精确的数据, 可以精确到毫秒)
其它类型:大文本, 文件
blob: 最大4G, 以二进制的形式来存放数据
clob: 最大4G, 以字符串的形式存放
Oracle运算符和表达式
表达式类似于java, 可以是常量, 可以是变量, 也可以是表中的一个字段
算术运算符(+ - * /)
比较运算符(> >= < group by--(group by 增强)-------结合分组函数使用 SELECT deptid FROM emp GROUP BY deptid
having
set
distinct----去除一列中的重复;
between...and(闭合区间, 即包括前面的数, 也包括后面的数)
all-------SELECT * FROM emp e WHERE e.intime>=ALL(SELECT e1.intime FROM emp e1);
asc,desc
union all与union
-----
select jkhtbh, jkrxm, jkrzjh, htdkje, b.mc
from grdk_sq_htxx a, bm_khjg b
where jkhtbh in
(select jkhtbh
from grdk_dk_zz
where dkffrq >= to_Date('20180101', 'yyyymmdd')
and grbh in
(select grbh
from grdk_Sq_htxx
where jkhtbh in
(select jkhtbh
from grdk_dk_zz
where dkffrq < to_Date('20180101', 'yyyymmdd'))
union
select grbh
from grdk_Sq_gtjkr
where jkhtbh in
(select jkhtbh
from grdk_dk_zz
where dkffrq < to_Date('20180101', 'yyyymmdd'))))
and a.jgbm = b.bm;
exists
----
select * fromgrdk_tx_hk_yh a where hkrq=date '2018-05-01'
and swtyhbm like '0103' and ykbxhj=gjjtqje and exists(
select * from grdk_dk_hkmx where jkhtbh=a.jkhtbh and ywlsh='218051601_0002268866'
);
select nvl(sum(1),0) into v_cnt from dual
where exists(select crbh from cr_jbxx_bg where crbh=v_dwbh and spzt='0' and bgxmdm='jcblbm');
if v_cnt0 then
v_msg:='此单位已录入单位缴存比例批量调整清册!';
return ;
end if;
select count(*) from cr_gr a where f_sfz(a.zjhm)1 and a.zjlx='01'
and exists(select 1 from gjzf_gr_zz where grzhzt in('01','02') and grbh=a.grbh);------------exists和in的类比
select count(*) from cr_gr a where f_sfz(a.zjhm)1 and a.zjlx='01'
and a.grbh in(select grbh from gjzf_gr_zz where grzhzt in('01','02') and grbh=a.grbh);------------exists和in的类比
inner join,left outer join,right outer join
case...when...then...else ---SELECT CASE E.SSEX WHEN 1 THEN '男' WHEN 0 THEN '女' ELSE '不详' END bb FROM EMP E;
----insert into tmp_hfb_jcdw_jkdzhd_cx
(id,
jyrq,
skyhmc,
skyhbm,
yhzhhm,
zhaiyao,
fse,
skzhhm,
skzhmc,
yhjslsh,
beizhu,
dwzh,
dwmc,
fkzhhm,
fkzhmc,
fkyhmc,
fkyhbm,
lsztmc,
lsztbm)
select a.id,
jysj,
nvl(b.mc, ' ') yhmc,
a.yhbm,
a.yhzhhm,
zhaiyao,
fse,
skzhhm,
skzhmc,
yhjslsh,
' ',
nvl(d.dwzh, ' ') dwzh,
nvl(c.dwmc, ' ') dwmc,
fkzhhm,
fkzhmc,
nvl(e.sszh, ' ') skzhhm,
nvl(f.mc, ' ') skzhmc,
case
when hdid = 0 then
'未核对'
else
'已核对'
end,
case
when hdid = 0 then
'01'
else
'02'
end
from im_yhzh_yemx a
left join bm_yhbm b
on a.yhbm = b.bm
and b.jgbm like '01%'
left join cr_dw c
on a.fkzhmc = c.jbzhkhmc
and (a.fkzhhm = c.jbzhkhyh or a.fkzhhm = c.jbzhyhzh2 or
a.fkzhhm = c.jbzhyhzh3 or a.fkzhhm = c.jbzhyhzh4)
left join gjzf_dw_zz d
on d.dwbh = c.dwbh
left join im_zhsz_dw e
on a.fkzhhm = e.yhzhhm
and a.fkzhmc = e.yhzhmc
left join bm_sszh f
on e.sszh = f.bm
where jysj between v_ksrq and v_jsrq
and fse between v_ksjyje and v_jsjyje
and fsefx = '01'
and a.yhbm like v_yhbm;
select dkffe 贷款发放额,
(case
when dkhkfs='01' then '等额本息'
when dkhkfs='70' then '等本等息'
when dkhkfs='02' then '等本本金'
when dkhkfs='03' then '一次还款付息'
when dkhkfs='03' then '自由还款方式'
end) as dkhkfsfrom grdk_dk_zz;
页:
[1]