oracle内建函数(一)
数字函数
Sql代码
--输入和输出都是数字
--abs(x) 取绝对值
select abs(-1) from dual;--1
--ceil(x) 返回大于等于n的最小整数
select ceil(1.4),ceil(-2.5) from dual;--2,-2
--floor(x) 返回小于等于n的最大整数
select floor(1.4),floor(-2.3) from dual;--1,-3
--mod(a,b) 返回a/b的余数,如果b=0,返回a
select mod(3,2),mod(3,0) from dual; --1,3
--round(a,[b]) 四舍五入,b是指定四舍五入的位数,
--省略b,到整数;b是整数,小数点后b位;b是负数,小数点前b位
select round(23.78),round(23.78,1),round(23.78,-1) from dual;--24,23.8,20
--trunc(a,[b]) 截取数字,b同样代表截取位置,定位同上
select trunc(23.78),trunc(23.78,1),trunc(23.78,-1) from dual;--24,23.7,20
--平方根
select sqrt(3),sqrt(9) from dual;--1.732,3
--power(a,b) a的b次方
select power(sqrt(3),2),power(2,3) from dual;--3,8
--sign(number):number>0,return 1;number<0,return -1;number=0,return 0.
select sign(-7),sign(0),sign(7) from dual;
--greatest(a,b,c,d...) 返回最大的
select greatest(3,7,5,12) from dual; --12
--字符串比较 自然排序比较
select greatest('about','age','again') from dual;--age
--如果参数数据类型不通,都转换为第一个参数类型进行比较
select greatest('3',7,5,12) from dual; --7
--least(a,b,c,d...) 返回最小的,规则同greatest, 如果有一个为null,则返回null
select least(2,12,6) from dual; --2
select least('2','12','6'),least(2,34,null) from dual;--'12',null
字符函数
Sql代码
--ascii(char) 返回char的ascii码值
select ascii('a'),ascii('D') from dual;--97,68
--chr(n) 将ascii值转换成字符
select chr(97),chr(65) from dual;--a,A
--concat(a,b) 连接字符串a和b,作用和'||'相同
select concat('aa','bb'),'aa'||'bb' from dual; --aabb,aabb
--initcap(char) 将字符串中每个单词首字母大写
select initcap('hello oracle') from dual;--Hello Oracle
--length(char)||lengthc(char) 返回字符串的长度
select length('hello我') from dual;--6
--vsize(char) 返回字符串的bytes长度 =lengthb(char)
select vsize('hello') from dual;
--查看字符集
select * from v$nls_parameters;
--
select length('我'),lengthb('我'),vsize('我') from dual;--1,2,2
select length('hello'),vsize('hello') from dual;--5,5
--instr(char,char1) char1在char中的位置,可以指定起始位置,和第几次出现
select instr('hello','l') from dual;--3,默认从第一个字符开始,第一次匹配结束
select instr('hello','l',1,2) from dual;--4,从第一个支付开始,第二次出现位置
--lower(char) 字符串转换成小写
select lower('TOM') from dual;--tom
--upper(char) 字符转换成大写
select upper('Tom') from dual;--TOM
--lpad(char1,n,char2) 在char1字符串的左端添加char2字符串,直到插入的字符串长度达到n
--char2默认值为空格,如果char1长度大于n,返回char1左端的n个字符
select lpad('a',5,'b') from dual;--bbbba
select lpad('abcdefg',5,'h') from dual;--abcde 5<原字符串的长度,直接截取原来字符串返回
--rpad(char1,n,char2) 右端填充,规则同上面左端填充
- 发表评论
-
- 最新评论 更多>>