ROWIDTOCHAR
将ROWID类型的数值rowid转换为其外部的18字符的字符串表示,在oracle7和oracle8之间有些不一样的地方. ROWIDTOCHAR和CHARTOROWID是两个相反的函数.
CHARTOROWID 把包含外部格式的ROWID的CHAR或VARCHAR2数值转换为内部的二进制格式.参数string必须是包含外部格式的ROWID的18字符的字符串.oracle7和 oracle8中的外部格式是不同的.CHARTOROWID是ROWIDTOCHAR的反函数.
select rowid,rowidtochar(rowid) from emp;
select rowid,chartorowid('ssssffffgggghhhhrr'),ename from emp;
.to_date("要转换的字符串","转换的格式") 两个参数的格式必须匹配,否则会报错。
即按照第二个参数的格式解释第一个参数。
to_char(日期,"转换格式" )即把给定的日期按照“转换格式”转换。
select to_char(sysdate,'yy-mm-dd') from student;
Select to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh24:mi:ss') from student
Lvvnl 用于某个语句的where子句中的条件,如果条件为true就返回false;如果条件为UNKNOWN或者false就返回true。该函数不能用于复合条件如AND, OR, or BETWEEN中。
select * from empwhere lnnvl(sal<=3000)
nvl (expr1,expr2) 如果expr1为null 则返回expr2 否则返回expr1 替换时常用 Select productname,nvl(quantity,0) from productinfo 表示若quantity为NULL返回0否则返回quantity的值
select nvl(stuname,'xxxxxx') from student
Nvl2(expr1,expr2,expr3) 意思一样当expr1为空返回expr3,不为空返回expr2
select nvl2(stuname,'xxxxxx','yyyyyyyyy') from student
Substr(字符串,截取位置,截取长度)(截取函数)
(1)select substr('bdqn',0,1) value from student; --0是从第一个字符开始截取长度为1的字符
(5)select substr('bdqn',-2,2) value fromstudent;--负数(-i)表示截取的开始位置为字符串右端向左数第i个字符
Distinct去除重复函数
select DISTINCT(stuname) from student
Order By 排序
select * from student order by stuno desc;
Null 查询时不能使用”=” 而用is null或者is not null
select * from student where stuage is null ;查询年龄为null的数据
Group By
select Count(*) from empgroup by hiredate;按日期分组
Having 一般与 Group by 连用 他不与单个值有关而是与组有关
select Count(*) from empgroup by hiredate having count(*)>1;查询按日期分组并且日期一样的记录
inner join on
select * from student INNER JOIN result on STUDENT.stuno=result.stuno;相当于两表联合查询
.ABS 取绝对值的函数
select abs(-100) from student;取绝对值
mod 取余函数
select mod(2,0) from Student; 取余,值为2
sign 返回数的符号 正数为n 负数为-n,0为0
select sign(-n),sign(0),sign(n) from student
ceil(n) 返回>= n的最小整数要求n必须是十进制的数
Floor(n) 返回<=n的最大整数 要求n 必须是十进制的数
.Power(n,m) 返回 n的m次幂 Exp(n) 返回e的n次幂
NLSSORT函数的作用是对字段排序,字符串类型的
按拼音排序:
Select * from student t order by NLSSORT(t.stuname,'NLS_SORT=SCHINESE_PINYIN_M')
按笔画排序
Select * from student t order by NLSSORT(t.stuname,'NLS_SORT = SCHINESE_STROKE_M')
按部首排序:
Select * from student t order by NLSSORT(t.stuname,'NLS_SORT = SCHINESE_RADICAL_M')
ASCII(CHAR)返回参数首字母的ASCII值
select ascii('bdqn') from student;
length(char)返回char类型的长度
select length('bdqn') from studnet;
.Cast转换类型
select cast('123'as Integer) from studnet;