1 oracle自带函数,可以大大提高select语句操作数据库的能力 2 3 常用的字符函数: 4 5 函数名 功能 示例 结果 6 7 initcap(char) 首字符大写 initcap('hello') Hello 8 9 lower(char) 转换为小写 lower('FUN') fun 10 11 upper(char) 转为大写 upper('sun') SUM 12 13 ltrim(char,set) 左剪裁 ltrim('xyzadams','xyz') adams 14 15 rtrim(char,set) 右剪裁 rtrim('xyzadams','adams') xyz 16 17 translate(char,from,to) 按字符翻译 translate('jack'.'abcd','1234') j13k 18 19 replace(char,search_str,replace_str) 字符替换 replace('jack and jue','j','bl') black and blue 20 21 instr(char,substr[,pos]) 查找子串位置 instr('adbcefg','d') 2 22 23 substr(char,pos,len) 取子字符串 substr('abcdefg',3,2) cd 24 25 concat(char1,char2) 连接字符串(只能连接两个) concat('Hello','world') Helloworld 26 27 使用 || 也可以拼接字符串 SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee WHERE FName IS NOT NULL 28 29 常用的数值函数: 30 31 函数名 功能 示例 结果 32 33 abs(n) 取绝对值 abs(-15) 15(负数的绝对值也是正数) 34 35 ceil(n) 向上取整 ceil(44.778) 45 36 37 floor(n) 向下取整 floor(100.2) 100 38 39 power(m,n) m的n次幂 power(4,2) 16 40 41 mod(m,n) 取余数 mod(10,3) 1 42 43 round(m,n) 四舍五入 round(100.256,2) 100.26 44 45 trunc(m,n) 截断 trunc(100.256,2) 100.25 46 47 sqrt(n) 平方根 sqrt(4) 2 48 49 常用的转换函数: 50 51 函数名 功能 示例 结果 52 53 to_char 转换为字符串类型 to_char(1234.5,'$9999.9') $1234.5 54 55 to_date 转化成日期类型 to_date('2012-01-09','yyyy-mm-dd') 09-01-21 56 57 to_number 转换成数值类型 to_number('1234.5') 1234.5 58 59 常用的日期函数: 60 61 函数名 功能 示例 结果 62 63 months_between 返回两个日期间的月份 months_between('04-11月-05','11-1月-01') 57.7741935 64 65 add_months 返回把月份数加到日期上的新日期 add_months('06-2月-03',1) 06-3月-03 66 67 next_day 返回指定日期后的星期对应的新日期 next_day('06-2月-03','') 10-2月-03 68 69 last_day 返回指定日期所在的月的最后一天 last_day('06-2月-03') 28-2月-03 70 71 round 按指定格式对日期进行四舍五入 round(to_date('13-2月-03'),'year') 01-1月-03 72 73 round(to_date('13-2月-03'),'month') 01-2月-03 74 75 round(to_date('13-2月-03'),'day') 16-2月-03 76 77 trunc 对日期按照指定方式进行截断 trunc(to_date(06-2月-03),'year') 01-1月-03 78 79 trunc(to_date(06-2月-03),'month') 01-2月-03 80 81 trunc(to_date(06-2月-03),'day') 02-2月-03 82 83 常用的其他函数: 84 85 nvl(exp1,exp2) 如果exp1的值为null,则返回exp2的值,否则返回exp1的值 86 87 nvl(exp1,exp2,exp3) 如果exp1的值为null,则返回exp2的值,否则返回exp3的值 88 89 decode(value,if1,then1,if2,then2,if3,....else) 如果value的值为if1,则返回then1的值,如果value的值为if2,则返回then2的值,。。。。否则返回else的值 90 91 常用的多行函数: 92 93 sum() 求和 select sum(love) from pet; 94 95 avg() 求平均值 select avg(health) from pet where master_id = 1; 96 97 count() 计数 select count(type_id) from pet; 98 99 max() 求最大值 select max(adopt_time) from pet; 100 101 min() 求最小值 select min(adopt_time) from pet; 102 103 外连接查询时:可以使用 where ....(+)写法代替。 104 105 select * from user u left join role r on u.id = r.id ; 106 107 也可以使用 108 109 select * from user u inner join role r on u.id = r.id(+);