加国际货币符号
G:在指定位置显示组分隔符
D:在指定位置显示小数点符号
16. to_number(string)
功能:将给出的字符串转换为数字。
例如:
Selectto_number('1999') year from dual;
17. decode函数
功能:相当于一条if语句
举例:
create tablestudent(sno char(2), sex char(1),birthday date)-- 创建学生表
insert intostudent values('01','M','18-8月-1992'); --添加记录
insert intostudent values('02','T', '9-5月-1993'); --添加记录
insert intostudent values('03','F' ,'18-1月-1994'); --添加记录
insert intostudent values('04',null,'11-8月-1993'); --添加记录
select *from student; -- 查询学生表
/*查询学生的学号和性别信息,如果性别值为M则显示male,性别值为F则显示female,如果为空值则显示unknow,否则则显示invalid*/
selectsno,sex,decode(sex, 'M','male','F','female',null,'unknow','invalid')fromstudent;
举例:查询student表,统计1992、1993、1994各年出生的学生人数。
selectto_char(trunc(birthday,'year'),'yyyy'),count(*)
from student
whereto_char(trunc(birthday,'year'),'yyyy') in ('1994','1993','1992')
group byto_char(trunc(birthday,'year'),'yyyy')
在SQL疑难问题中,decode函数常常发挥非常灵活的作用。其中一个就是为了某种目的将一个表的行转换成列。例如:
selectsum(decode(to_char(trunc(birthday,'year'),'yyyy'),'1994',1,0) ) birth_1994,
sum(decode(to_char(trunc(birthday,'year'),'yyyy'),'1993',1,0)) birth_1993,
sum(decode(to_char(trunc(birthday,'year'),'yyyy'),'1992',1,0)) birth_1992
from student
whereto_char(trunc(birthday,'year'),'yyyy') in ('1994','1993','1992')
18. greatest函数
功能:返回一组表达式中的最大值,即比较字符的编码大小。
举例:
selectgreatest('AD','AC','AA') from dual;
19. least函数
功能:返回一组表达式中的最小值,即比较字符的编码大小。
举例:
selectleast('AD','AC','AA') from dual;
20. uid 函数
功能:返回标识当前用户的唯一整数
举例:
show user
select uidfrom dual;
selectusername,user_id from dba_users where user_id=uid;
2 数字函数
1. ABS
功能:取绝对值
Selectabs(100),abs(-100) from dual;
2. ACOS
功能:给出反余弦的值
Selectacos(-1) from dual;
3. ASIN
功能:给出反正弦的值
Selectasin(0.5) from dual;
4. ATAN
功能:返回一个数字的反正切值
Selectatan(1) from dual
5. CEIL
功能:返回大于或等于给出数字的最小整数
Selectceil(3.1415926) from dual;
6. COS
功能:返回一个给定数字的余弦
Selectcos(-3.14) from dual;
7. EXP
功能:返回一个数字e的n次方
Selectexp(2),exp(1) from dual;
8. FLOOR
功能:对给定的数字取整数(舍掉小数位)
Selectfloor(234.56) from dual;
9. LN
功能:返回一个数字的对数值
Selectln(1), ln(2) from dual;
10. Log(n1,n2)
功能:返回以n1为底的n2的对数
Selectlog(2,1), log(2,4) from dual;
11. MOD(n1,n2)
功能:返回一个n1除以n2的余数
Selectmod(10,3) mod(2,3) from dual;
12. POWER(n1,n2)
功能:返回n1的n2次方
Selectpower(2,5) from dual;
13. ROUND
功能:按照指定的精度进行舍入(四舍五入)
14. TRUNC
功能:按照指定的精度进行舍入(用于截取,没有指定截取到第几位,默认取整数)。
举例:
Selectround(55.5),trunc(55.5),round(-55.5), trunc (-55.5)from dual;
Selecttrunc(12.345,2), trunk(12.234,-2) from dual;
Selectto_char(trunc(sysdate,’hh’),’yyyy.mm.dd hh24:mi:ss’) hh, to_char(trunc(sysdate,’mi’), ’yyyy.mm.dd hh24:mi:ss’) hhmm from dual;
selecttrunc(sysdate) from dual --2014-3-18今天的日期为2014-3-18
select trunc(sysdate, 'mm') from dual --2014-3-1返回当月第一天.
select trunc(sysdate,'yy') from dual--2014-1-1 返回当年第一天
select trunc(sysdate,'dd') from dual--2014-3-18 返回当前年月日
select trunc(sysdate,'yyyy') from dual--2014-1-1 返回当年第一天
select trunc(sysdate,'d') from dual--2014-3-16 (星期天)返回当前星期的第一天
select trunc(sysdate, 'hh') from dual --2014-3-1814:00:00 当前时间为14:41
select trunc(sysdate, 'mi') from dual --2014-3-1814:41:00 TRUNC()函数没有秒的精确
15. SIGN
功能:取数字n的符号,大于0返回1,小于0返回-1,等于0返回0
Select sign(12),sign(-10),sign(0)from dual;
16. SQRT(n)
功能:返回数字n的平方根
Selectsqrt(64) ,sqrt(10)from dua