oracle 常用 sql
判断字段值是否为空( mysql 为 ifnull(,)):
nvl (Withinfocode,'') as ***
两字段拼接:
(1)concat(t.indate, t.intime) as 就诊时间
(2)和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样。
SUBSTR(t.DiagnoseTime,1,4)||'-'||SUBSTR(t.DiagnoseTime,5,2)||'-'||SUBSTR(t.DiagnoseTime,7,2)
||'-'||(case t.PatientMFlag when '0' then '住院' when '1' then '门诊' else ' ' end) as visitKey
原字符串 (20031202154726)可拼接成【2004-06-17-住院】
字符串截取:
SUBSTR(t.DiagnoseTime,1,8)
第一个字符开始,取 8 个。对于日期时间字符串"20031202154726"会得到 "20031202"
日期时间格式化:
to_date(concat(t.indate,t.intime),'yyyy-MM-dd HH24:mi:ss')
我们还需要以24小时的形式显示出要用的HH24
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份
select * from tpoolhourinfo a where a.workdate between to_date('2008-8-20','yyyy-mm-dd')
and to_date('2008-8-25','yyyy-mm-dd')
只取日期:
20031202154726
to_date(SUBSTR(t.DiagnoseTime,1,8),'yyyy-MM-dd') as visitDate
抽样:
SELECT MRID,
case PaperType when '0' then '0-身份证' when '1' then '1-军人证' when '2' then '2-其它' else null end as 证件类型,
PaperNum as 证件号码,
McNum as 医保号
FROM MainMr SAMPLE (0.07)