--常用的字符函数
-- 1. initcap(char) 函数。 让首字母大写 以下是代码实例
select initcap('hello') from dual
--输出结果 Hello
-- 2. lower(char) 函数。 转换为小写 以下是代码实例
select lower('HELLO') from dual
--输出结果 hello
-- 3. upper(char) 函数。 转换为大写 以下是代码实例
select upper('hello') from dual
--输出结果 HELLO
-- 4. ltrim(char,set) 函数。 左裁剪 set为你要剪切掉的值 以下是代码实例
select ltrim('hello word','hell') from dual
--输出结果 o word
-- 5. rtrim(char,set) 函数。 右裁剪 set为你要剪切掉的值 以下是代码实例
select rtrim('hello word','ord') from dual
--输出结果 hello w
-- 6. replace(char,search_str,replace_str) 函数。替换字符串 参数一为字符串,参数二为字符串中的要替换的字符串,参数三为替换的字符串 以下是代码实例
select replace('hello word','o','sa') from dual
--输出结果 hellsa wsard
-- 7. instr(char,substr) 函数。 查找字符位置s substr为你要查找的值 从1开始 以下是代码实例
select instr('hello word','or') from dual
--输出结果 8
-- 8. substr(char,pos,len) 函数。 截取字符串 char为字符串 从pos位置截取长度为len的字符串 以下是代码实例
select substr('hello word',2,2) from dual
--输出结果 el
-- 8. concat(char1,char2) 函数。 拼接字符串 以下是代码实例
select concat('hello','word') from dual
--输出结果 helloword
-- 9. translate(char,from,to) 函数。 按字符翻译,char为要翻译的字符串,如果char中任何一个字符和from任何字符对应,
--则替换成from对应的to那个位置的值,如果to对应位置没有值,则会为空 以下是代码实例
select translate('hello','eo','13') from dual
--输出结果 h1ll3
select translate('hello','edo','13') from dual
--输出结果 h1ll
--常用的数字函数
-- 1. abs(num) 函数。 取绝对值。也就是相反值 以下是代码实例 -3-
select abs(-15) from dual
--输出结果 15
-- 2. ceil(num) 函数。 向上取整。只要超过这个整数,不管超过多少 ,都会向上取整 以下是代码实例 -3-
select ceil(44.22) from dual
--输出结果 45
-- 3. floor(num) 函数。 向下取整。 以下是代码实例 -3-
select floor(44.99) from dual
--输出结果 44
-- 4. sin(num) 函数。 正 弓玄。 以下是代码实例 -3- 制作者根本不知道什么是正 弓玄 - -
select sin(1.571) from dual
--输出结果 0.999999979258613
-- 5. cos(num) 函数。 余 弓玄。 以下是代码实例 -3- 制作者根本不知道什么是余 弓玄 - -
select cos(0) from dual
--输出结果 1
-- 6. sign(num) 函数。 取符号。如果num小于0就返回-1,大于0返回1 等于0返回0 以下是代码实例 -3-
select sign(-0.5) from dual
--输出结果 -1
-- 7. power(m,n) 函数。m的n次方 以下是代码实例 -3-
select power(5,3) from dual
--输出结果 125
-- 8. mod(m,n) 函数。取膜,就是取余数,m除以n剩下除不完的数 以下是代码实例 -3-
select mod(11,3) from dual
--输出结果 2
-- 9. round(m,n) 函数。四舍五入,m值四舍五入 n是保留的小数点位数 以下是代码实例 -3-
select round(11.256,2) from dual
--输出结果 11.26
-- 10. trunc(m,n) 函数。截断,m是要截断的数字 n是要保留的小数点位数 以下是代码实例 -3-
select trunc(11.256,2) from dual
--输出结果 11.25
-- 11. sqrt(num) 函数。求平方根 以下是代码实例 -3-
select sqrt(9) from dual
--输出结果 3 因为 3*3 = 9
--常用的日期函数
-- 1. months_between(date1,date2) 函数。 取两个日期的月份差值,第一个date 减第二个date 如2012,2011 那么返回12 以下是代码实例 -3-
select months_between(to_date('2012-1-1','yyyy-mm-dd'),to_date('2011-1-2','yyyy-mm-dd')) from dual
--输出结果 11.9677419354839
-- 2. add_months(date,month) 函数。 返回把month整数月份数加到date的值 可以为负数 以下是代码实例 -3-
select add_months(sysdate,1) from dual --注:编者当前时间为2013/5/11
--输出结果 2013/6/11 11:03:59
-- 3. next_day(date,星期几(int型)) 函数。 返回下次星期几对应的日期 1为星期天 7为星期6 以下是代码实例 -3-
select next_day(sysdate,7) from dual --注:编者当前时间为2013/5/11星期6 返回下次星期六 的日期
--输出结果 2013/5/18
-- 4. last_day(date) 函数。 返回指定日期所在的月的最后一天 以下是代码实例 -3-
select last_day(sysdate) from dual --注:编者当前时间为2013/5/11
--输出结果 2013/5/31
-- 5. round(date,type) 函数。 对日期进行四舍五入 type可以是 year , month day等日期格式 以下是代码实例 -3-
select round(to_date('2012-6-16','yyyy-mm-dd'),'yy') from dual
--输出结果 2012/1/1
select round(to_date('2012-6-16','yyyy-mm-dd'),'mm') from dual
--输出结果 2012/7/1
-- 6. trunc(date,type) 函数。 对指定的日期以某种格式进行截断,抛弃其他的日期 type可以是 year , month day等日期格式 以下是代码实例 -3-
select trunc(to_date('2012-6-16','yyyy-mm-dd'),'yy') from dual
--输出结果 2012/1/1
select trunc(to_date('2012-6-16','yyyy-mm-dd'),'mm') from dual
--输出结果 2012/6/1
7.sysdate 获取系统当前时间
--常用的转换函数 与 常用其他函数
--转换函数
-- 1. to_char(char,type) 函数。 把char按type的格式转换成字符串,也可以转换日期 以下是代码实例 -3-
select to_char(to_date('2012-1-1','yyyy-mm-dd'),'yyyy"年"mm"月"dd"日"') from dual
--输出结果 2012年01月01日
select to_char(1234.5,'$9999.9') from dual --注意:这里一定要是最大的值。。也就是全是9 = = 虽然不知道为什么一定要这样。。。
--输出结果 $1234.5
-- 2. to_date(date,type) 函数。 转化为日期类型 date是要转化的日期,type是转化的格式,注意要两边要格式相同才可以转换 以下是代码实例 -3-
select to_date('2013-5-8','yyyy-mm-dd') from dual
--输出结果 2013/5/8
-- 3. to_number(num) 函数。把一个字符串转换为数字 以下是代码实例 -3-
select to_number('123.4') from dual
--输出结果 123.4
--其他函数
-- 1. nvl(value,exp1) 函数。用于将null值转换指定的值。使用于字符,数字,日期等数据类型 以下是代码实例 -3-
select nvl(null,'空') from dual --如果value 为null 那么就输出 exp1的值 否则就输出value本来的值
--输出结果 空
-- 2. nvl2(value,exp1,exp2) 函数。 以下是代码实例 -3-
select nvl2(null,'空','无') from dual --如果value 为null 那么就输出 exp2的值 否则就输出exp1的值
--输出结果 无
-- 3. decode(value,if1,then1,if2,then2,if3……else) 函数。相当于多重if - else - then 逻辑 以下是代码实例 -3-
select decode(1,1,'正常',2,'禁用','大傻逼') from dual --如果value 为if1 那么就输出 then1的值 ……以此类推, 都不满足则输出else的值
--输出结果 正常
--常用的多行函数 相当于 sql的聚合函数
比较简单 不再一一叙述。
1.sum(字段名) 求和
avg(字段名) 求平均数
count(字段名) 求数量
max(字段名) 求最大值
min(字段名) 求最小值
-- 1. initcap(char) 函数。 让首字母大写 以下是代码实例
select initcap('hello') from dual
--输出结果 Hello
-- 2. lower(char) 函数。 转换为小写 以下是代码实例
select lower('HELLO') from dual
--输出结果 hello
-- 3. upper(char) 函数。 转换为大写 以下是代码实例
select upper('hello') from dual
--输出结果 HELLO
-- 4. ltrim(char,set) 函数。 左裁剪 set为你要剪切掉的值 以下是代码实例
select ltrim('hello word','hell') from dual
--输出结果 o word
-- 5. rtrim(char,set) 函数。 右裁剪 set为你要剪切掉的值 以下是代码实例
select rtrim('hello word','ord') from dual
--输出结果 hello w
-- 6. replace(char,search_str,replace_str) 函数。替换字符串 参数一为字符串,参数二为字符串中的要替换的字符串,参数三为替换的字符串 以下是代码实例
select replace('hello word','o','sa') from dual
--输出结果 hellsa wsard
-- 7. instr(char,substr) 函数。 查找字符位置s substr为你要查找的值 从1开始 以下是代码实例
select instr('hello word','or') from dual
--输出结果 8
-- 8. substr(char,pos,len) 函数。 截取字符串 char为字符串 从pos位置截取长度为len的字符串 以下是代码实例
select substr('hello word',2,2) from dual
--输出结果 el
-- 8. concat(char1,char2) 函数。 拼接字符串 以下是代码实例
select concat('hello','word') from dual
--输出结果 helloword
-- 9. translate(char,from,to) 函数。 按字符翻译,char为要翻译的字符串,如果char中任何一个字符和from任何字符对应,
--则替换成from对应的to那个位置的值,如果to对应位置没有值,则会为空 以下是代码实例
select translate('hello','eo','13') from dual
--输出结果 h1ll3
select translate('hello','edo','13') from dual
--输出结果 h1ll
--常用的数字函数
-- 1. abs(num) 函数。 取绝对值。也就是相反值 以下是代码实例 -3-
select abs(-15) from dual
--输出结果 15
-- 2. ceil(num) 函数。 向上取整。只要超过这个整数,不管超过多少 ,都会向上取整 以下是代码实例 -3-
select ceil(44.22) from dual
--输出结果 45
-- 3. floor(num) 函数。 向下取整。 以下是代码实例 -3-
select floor(44.99) from dual
--输出结果 44
-- 4. sin(num) 函数。 正 弓玄。 以下是代码实例 -3- 制作者根本不知道什么是正 弓玄 - -
select sin(1.571) from dual
--输出结果 0.999999979258613
-- 5. cos(num) 函数。 余 弓玄。 以下是代码实例 -3- 制作者根本不知道什么是余 弓玄 - -
select cos(0) from dual
--输出结果 1
-- 6. sign(num) 函数。 取符号。如果num小于0就返回-1,大于0返回1 等于0返回0 以下是代码实例 -3-
select sign(-0.5) from dual
--输出结果 -1
-- 7. power(m,n) 函数。m的n次方 以下是代码实例 -3-
select power(5,3) from dual
--输出结果 125
-- 8. mod(m,n) 函数。取膜,就是取余数,m除以n剩下除不完的数 以下是代码实例 -3-
select mod(11,3) from dual
--输出结果 2
-- 9. round(m,n) 函数。四舍五入,m值四舍五入 n是保留的小数点位数 以下是代码实例 -3-
select round(11.256,2) from dual
--输出结果 11.26
-- 10. trunc(m,n) 函数。截断,m是要截断的数字 n是要保留的小数点位数 以下是代码实例 -3-
select trunc(11.256,2) from dual
--输出结果 11.25
-- 11. sqrt(num) 函数。求平方根 以下是代码实例 -3-
select sqrt(9) from dual
--输出结果 3 因为 3*3 = 9
--常用的日期函数
-- 1. months_between(date1,date2) 函数。 取两个日期的月份差值,第一个date 减第二个date 如2012,2011 那么返回12 以下是代码实例 -3-
select months_between(to_date('2012-1-1','yyyy-mm-dd'),to_date('2011-1-2','yyyy-mm-dd')) from dual
--输出结果 11.9677419354839
-- 2. add_months(date,month) 函数。 返回把month整数月份数加到date的值 可以为负数 以下是代码实例 -3-
select add_months(sysdate,1) from dual --注:编者当前时间为2013/5/11
--输出结果 2013/6/11 11:03:59
-- 3. next_day(date,星期几(int型)) 函数。 返回下次星期几对应的日期 1为星期天 7为星期6 以下是代码实例 -3-
select next_day(sysdate,7) from dual --注:编者当前时间为2013/5/11星期6 返回下次星期六 的日期
--输出结果 2013/5/18
-- 4. last_day(date) 函数。 返回指定日期所在的月的最后一天 以下是代码实例 -3-
select last_day(sysdate) from dual --注:编者当前时间为2013/5/11
--输出结果 2013/5/31
-- 5. round(date,type) 函数。 对日期进行四舍五入 type可以是 year , month day等日期格式 以下是代码实例 -3-
select round(to_date('2012-6-16','yyyy-mm-dd'),'yy') from dual
--输出结果 2012/1/1
select round(to_date('2012-6-16','yyyy-mm-dd'),'mm') from dual
--输出结果 2012/7/1
-- 6. trunc(date,type) 函数。 对指定的日期以某种格式进行截断,抛弃其他的日期 type可以是 year , month day等日期格式 以下是代码实例 -3-
select trunc(to_date('2012-6-16','yyyy-mm-dd'),'yy') from dual
--输出结果 2012/1/1
select trunc(to_date('2012-6-16','yyyy-mm-dd'),'mm') from dual
--输出结果 2012/6/1
7.sysdate 获取系统当前时间
--常用的转换函数 与 常用其他函数
--转换函数
-- 1. to_char(char,type) 函数。 把char按type的格式转换成字符串,也可以转换日期 以下是代码实例 -3-
select to_char(to_date('2012-1-1','yyyy-mm-dd'),'yyyy"年"mm"月"dd"日"') from dual
--输出结果 2012年01月01日
select to_char(1234.5,'$9999.9') from dual --注意:这里一定要是最大的值。。也就是全是9 = = 虽然不知道为什么一定要这样。。。
--输出结果 $1234.5
-- 2. to_date(date,type) 函数。 转化为日期类型 date是要转化的日期,type是转化的格式,注意要两边要格式相同才可以转换 以下是代码实例 -3-
select to_date('2013-5-8','yyyy-mm-dd') from dual
--输出结果 2013/5/8
-- 3. to_number(num) 函数。把一个字符串转换为数字 以下是代码实例 -3-
select to_number('123.4') from dual
--输出结果 123.4
--其他函数
-- 1. nvl(value,exp1) 函数。用于将null值转换指定的值。使用于字符,数字,日期等数据类型 以下是代码实例 -3-
select nvl(null,'空') from dual --如果value 为null 那么就输出 exp1的值 否则就输出value本来的值
--输出结果 空
-- 2. nvl2(value,exp1,exp2) 函数。 以下是代码实例 -3-
select nvl2(null,'空','无') from dual --如果value 为null 那么就输出 exp2的值 否则就输出exp1的值
--输出结果 无
-- 3. decode(value,if1,then1,if2,then2,if3……else) 函数。相当于多重if - else - then 逻辑 以下是代码实例 -3-
select decode(1,1,'正常',2,'禁用','大傻逼') from dual --如果value 为if1 那么就输出 then1的值 ……以此类推, 都不满足则输出else的值
--输出结果 正常
--常用的多行函数 相当于 sql的聚合函数
比较简单 不再一一叙述。
1.sum(字段名) 求和
avg(字段名) 求平均数
count(字段名) 求数量
max(字段名) 求最大值
min(字段名) 求最小值