功能 | oracle | sybase |
获取系统时间 | sysdate | getdate() |
if then else 功能 | decode(item, if_1, value1, if_2, value2, … default value) 如果value值等于条件if_1 则选取value1 否则如果等于条件if_2 则选取value2 … 如果都不满足则选取默认值default Value 注:item 和 if_1只能是等于关系 | case when condition1 then value1 when condition2 then value2 else defaultValu end |
判 null | NVL(item,value) 如果item字段为nul 则显示value值 | 用case when then else end 实现 |
截取字符串 | substr(string,起始位,终止位) 注:1或0都表示第一位 终止位为空,表示取到最后一位 | substring(string,起始位,终止位) 注:1为第一位,不能写0,否则去不到数据 参数一个都不能少 取到最后一位用 char_length(item) 表示 |
判断是否含有某字符串 | instr(string,subStr,起始位置,匹配编号) oracle中可以通过后两个参数(起始位置,匹配编号进行更复杂的查询判断) | charindex(subStr,string) 注:sybase和oracle子串和字符串位置相反 |
有关时间的操作 | ||
将字符串转换成时间格式 | to_date('20070520','yyyymmdd') 或:to_date('20070520','yyyymmddHH24miss') 结果都是 2007-5-20 to_date('20070520123000','yyyymmdd HH24:mi:ss') 或:to_date('20070520123000','yyyymmddHH24miss') 结果都是 2007-5-20 13:30:00 | cast('20070520' as datetime) 日期字串只能到日 结果: 2007-05-20 00:00:00.0 |
日期差 | 日期格式(to_date)相减结果单位是天,且保留小数 | datediff(单位,starttime,endtime) 单位包括:month,day,hour,minute,second 结果为整数 |
选择较大(较小)值 | greatest(字段1,字段2……) 取得最大的 | 用and逻辑实现 |
oracle sybase部分常用sql对比
最新推荐文章于 2021-04-15 16:16:34 发布