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)

 

posted @ 2018-05-21 14:28  quietwalk  阅读(209)  评论(0编辑  收藏  举报