‐‐LOWER(列名|表达式):将大写或大小写混合的字符转换成小写
SELECT  LOWER('HELLO')
FROM    dual;
‐‐UPPER(列名|表达式) :将小写或大小写混合的字符转换成大写
SELECT  UPPER('heheheehheeh')
FROM  dual;
‐‐INITCAP(列名|表达式) :将每个单词的第一个字母转换成大写,其余的字母都转换成小写.
SELECT  INITCAP('asfJKJ')
FROM  dual;
‐‐字符处理函数
‐‐CONCAT(str,str):连接两个值,等同于||.
SELECT  concat('Hello','World!'),
'Hello'||'world!'
FROM  dual;
‐‐SUBSTR(column | expression,n1[,n2])截子串,从n1开始截,截n2位 2不写默认为直到最后 SELECT  substr('Helloworldhellojavahellooracle',8,2)
FROM    dual;
‐‐INSTR(s1,s2,[,n1],[n2])子串出现的位置 返回s1中,子串s2从n1开始,第n2次出现的位置。n1,n2默认值为1
SELECT  INSTR('Helloworldhellojavahellooracle','hello',1,2),
INSTR('hello  hellooraclehellohtml','oracle')‐‐空格也算个数
FROM  dual;
‐‐LENGTH:取字符长度.LENGTHB:取字节长度,中文一个字符两个字节
SELECT  LENGTH('hellooracle'),
LENGTH('hellojavahellooraclehellohtml')
FROM  dual;
‐‐EPAD/LPAD(s1,n1,s2)返回s1被s2从右/左面填充到n1长度,位数不足用s2填充 SELECT  RPAD('hello',12,'*'),
LPAD('orcl',5,'#'),
RPAD(5000,10,'*')
FROM  dual;
‐‐TRIM:去除字符串头部或尾部(头尾)的字符,默认为空格  用到FROM关键字 SELECT  TRIM('  hello  oracle  '),
TRIM('h' FROM 'hehehehhh'),‐‐去掉字符串开头和结尾中的‘h’
LTRIM('hhhhehhehehhh','h'),‐‐省掉FROM
RTRIM('hhhhehhehehhh','h')
FROM  dual;
‐‐REPLACE(s1,s2,s3):把s1中的s2用s3替换
SELECT  REPLACE('hellojavailovejava','java','oracle'),
REPLACE('hehehe hehe hehehhhh','h',''),
REPLACE('  hello  oracle  ',' ' ,'')
FROM dual;
‐‐数字函数
‐‐ROUND(列名|表达式, n):将列或表达式所表示的数值四舍五入到小数点后的第n位
SELECT  ROUND(4585.239,2 ),
ROUND(4585.239,0),‐‐保留到整数
ROUND(4585.239,‐2)—保留到百位
FROM    dual;
‐‐TRUNC(列名|表达式,n):将列或表达式所表示的数值截取到小数点后的第n位 SELECT  TRUNC(4585.239,2 ),
TRUNC(4585.239,0 ),
TRUNC (4585.239,‐2 )
FROM  dual;
‐‐MOD(m,n):取m除以n后得到的余数,即取模
SELECT  MOD(356,7)
FROM  dual;
‐‐FLOOR()向下取整,一个参数,保留到整数,相当于trunc0,CEIL()向上取整 SELECT  FLOOR(4585.55),
CEIL(4585.45),
CEIL(0.0512)‐‐去掉小数部分,整数部分加1
FROM  dual;
‐‐日期函数
‐‐SYSDATE:返回系统日期
SELECT  SYSDATE
FROM  dual;
‐‐MONTHS_BETWEEN:返回两个日期间隔的月数(只计算日期,对时间无效) SELECT  MONTHS_BETWEEN(to_date('2012/12/21','yyyy/mm/dd'),SYSDATE)
FROM  dual;
‐‐ADD_MONTHS:在指定日期基础上加上相应的月数:小数无效
SELECT  ADD_MONTHS(SYSDATE,28),
ADD_MONTHS(SYSDATE,28.5)
FROM  dual;
‐‐NEXT_DAY:返回某一日期的下一个指定日期
SELECT  NEXT_DAY(SYSDATE,'星期三'),
NEXT_DAY('02‐2月‐06','星期一')
FROM  dual;
‐‐LAST_DAY:返回指定日期当月最后一天的日期
SELECT  LAST_DAY('18‐8月‐10'),
LAST_DAY(SYSDATE)+1  ‐‐下个月的第一天
FROM  dual;
‐‐ROUND(date[,'fmt'])将date按照fmt指定的格式进行四舍五入,fmt为可选项,如果没有指定fmt,则默认为DD’,将date四舍五入为最近的天。
‐‐ 格式码:世纪CC,年YY,月MM,日DD,小时HH24,分MI,秒SS 16号进位 SELECT  ROUND(SYSDATE,'mi')
FROM  dual;
‐‐TRUNC(date[,'fmt'])将date按照fmt指定的格式进行截取,fmt为可选项,如果没有指定fmt,则默认为‘DD’,将date截取为最近的天。
SELECT  TRUNC(SYSDATE),
TRUNC(SYSDATE,'mm')
FROM  dual;
‐‐EXTRACT:返回从日期类型中取出指定年、月、日
SELECT  EXTRACT(YEAR FROM SYSDATE)‐‐使用from关键字
FROM  dual;
‐‐TO_CHAR(date|number [,‘fmt’])把日期类型/数字类型的表达式或列转换为字符类型。‘fmt’指的是需要
trunc函数截取整数显示的格式
SELECT  TO_CHAR(15487.2356,'999,999.9999'),
TO_CHAR(1988‐06‐02,'000,000,000'),
TO_CHAR(SYSDATE,'DDSPTH'),
TO_CHAR(SYSDATE,'DD "of" MONTH ')
FROM  dual;
ALTER  SESSION SET NLS_LANGUAGE = AMERICAN;
SELECT  employee_id, last_name,
TO_CHAR(hire_date,'Day ",the" Ddspth "of" YYYY HH24:MI:SS') hire_date FROM  employees
WHERE  department_id=90;
‐‐TO_NUMBER(char[,’fmt’]) 把字符类型列或表达式转换为数字类型。
‐‐TO_DATE(char[,‘fmt’]) 把字符类型列或表达式转换为日期类型。
其他
‐‐NVL (表达式1, 表达式2)函数功能是空值转换,表达式1为null,表达式转换成表达式2(表
达式1、2的类型相同)
SELECT  NVL(commission_pct,‐1)
FROM  employees;
‐‐NVL2(表达式1, 表达式2, 表达式3)函数是对第一个参数进行检查。如果第一个参数不为空,则输出第二个参数;如果第一个参数为空,则输出第三个参数。表达式1可以为任何数据类型。类型匹配,表达式2,3
SELECT  last_name, salary,NVL2(commission_pct,salary + commission_pct,salary) income FROM  employees
WHERE  last_name LIKE '_a%';
‐‐NULLIF (表达式1, 表达式2)表达式1不等于表达式2返回表达式1,相等返回null SELECT  nullif('abc','aba'), NVL(nullif('hello','hello'),'null')
FROM  dual;
‐‐COALESCE (表达式1, 表达式2, ... 表达式n)COALESCE函数的功能是返回第一个不为空的参数,参数个数不受限制
SELECT  COALESCE(NULL,NULL,123,NULL,334,NULL)
FROM  dual;
‐‐CASE表达式
CASE  expr
WHEN  comparison_expr1  THEN return_expr1
[WHEN  comparison_expr2 THEN return_expr2
WHEN  comparison_exprn  THEN return_exprn
ELSE else_expr]
END
‐‐DECODE(字段|表达式, 条件1,结果1[,条件2,结果2…,][,缺省值]) SELECT  last_name, commission_pct,
Decode ( commission_pct,
0.1,'低',
0.2,'中',
0.3 , '高',
'无') Commission
FROM  employees
WHERE  commission_pct IS NOT NULL
ORDER BY last_name;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。