留以后观察:
select ascii('A'),ascii('Z') from dual; --65 90
select chr('65'),chr('90') from dual; --A Z --ascii函数 --chr ascii反函数
select concat('123','456') from dual; --123456
select concat(null,'123') from dual; --123 --concat函数将第二个参数连接到第一个参数后面
select initcap('abc') from dual; --Abc
select initcap('123') from dual; --123 --initcap函数 首字母大写
select instr('abcb','b',-1,1) from dual; --2 --instr函数 第一个参数元字符串,第二个参数字符串中的关键字,第三个参数为正从左往右值为第一个参数查询的起始位置索引,若为负数从右往左查询,第四个参数表示该关键字在第一个参数中第几次出现,三四默认值都为1
select instrb('abcb','bc',1,1) from dual; --2 --感觉和instr并没有什么区别
select length('abc') from dual; --3 --length函数 返还一串字符的长度
select lower('ABC') from dual; --abc --lower函数 返回小写的字符
select ltrim('abc','ab') from dual; --c
select ltrim('vabc','ab') from dual;--(无效) --ltrim函数 根据第二个字符查找第一个字符从最左边开始,若出现参数二关键词,则将其删除 与rtrim()函数用法相同
select replace('abc','ab','AB') from dual;--ABc --replace函数 用参数三替换参数一中存在的参数二
select substr('message',1,4) from dual; --mess --substr函数 切割字符串,二三参数,起始位与结束位,若参数三不给定则到串的尾部
select soundex('abc') ,soundex('ABC') ,soundex('dawson') from dual; --what meanings?
select translate('ABC','A','D') from dual; --DBC --感觉应该和replace函数用法相同
select upper('abc') from dual; --ABC --大写转换函数
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
select abs('-123') from dual; --`123--返回其绝对值
select ceil('123.123') from dual; --124 --返回大于或等于参数一的最小整数
select exp('1') from dual; --E1 --返回E的N次幂
select floor('123.123') from dual; --123 --返回小于或等于参数一的最大整数
select ln('2') from dual; --返回参数一自然对数,参数必须大于0
select log('2','2') from dual; --返回参数一为底参数二的对数
select mod('3','2') from dual; --1 --返回参数一除以参数一的余数
select round('126.123','-1') from dual; --130
select round('123.123','-1') from dual; --120
select round('123.123','1') from dual; --123.1 --第二个参数为负,则返回小数点前几位(根据参数来定)(四舍五入), 若为正,则返回小数点后几位(根据参数来定)根据之后的那位小数来四舍五入 注:参数二必须为整数
select sign('-1') from dual; --(-1)
select sign('-2222') from dual; --(-1)
select sign('1') from dual; -- 1
select sign('2222') from dual; -- 1
select sign('0') from dual; -- 0 如果参数为负返回-1,参数为正 返回1,参数为0 返回0
select trunc('123.1234','2') from dual; --123.12
select trunc('123.1234') from dual; --123
select trunc('123.1234','-2') from dual; --100 注:没有四舍五入 (可以截断时间的如:trunc(sysdate,'yyyy')) --> 当前的年份和这个月份的第一天
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
select add_months(sysdate,'12') from dual; --2016/.......
select add_months(sysdate,'-12') from dual; --2014/......返回当前时间,再加上第二个参数的时间(月份)
select last_day(sysdate) from dual; --返回b期
select months_between(sysdate,sysdate) from dual; --0 返回两个日期参数之间的月份差值
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
select round(sysdate,'YYYY') from dual; --2016/1/1 --返回,该日期以参数二的格式进行输出,当前月的第一天
select trunc('89.89923','2') from dual; --89.89 截取数字
select trunc(sysdate) from dual; --截取日期,去除时分秒
select trunc(sysdate,'yyyy') from dual; --目前年份月份的第一天
select trunc(sysdate,'Q') from dual; --目前年份月份的第一天
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
select nvl('参数一','参数二'); --如果参数一为空则返回参数二,否则返回参数一
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SELECT * FROM ( SELECT A.*, ROWNUM RN
FROM (要查询分页数据的表) A WHERE ROWNUM <= 60 ) WHERE RN >= 1 --oracle分页 60--表示总共60条,1--从第一条显示,一页60条
SELECT * FROM ( SELECT A.*, ROWNUM RN
FROM (要查询分页数据的表) A WHERE ROWNUM <= 60 ) WHERE RN >= 41 --60表示总共60条数据, 41--表示从第41条开始显示,一页显示20条数据 --
SELECT /*+ FIRST_ROWS */ * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21
----------------------------------------------------------------------------------------------------------------------------------------------------------
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
decode(字段或字段的运算,值1,值2,值3)
这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多