代码
- ASCII(STR)
- select ASCII('ABCD') FROM DUAL;
- 结果: 65
代码
- CHR(n)
- select CHR(68) from dual;
- 结果:D
代码
- CANCAT(char1,cahr2) 和 ||
- select concat('abc','defg') from dual;
- select 'abc'||'defg' from dual;
- 结果: 'abcdefg'
代码
- DECODE(char,n1,Char1,n2,char3...)
- select decode(day,1,'SUN',2,'MON') from dual
- 结果:if day==1 return SUN ..==2 return MON
select sid,serial#,username,DECODE(command,0,'None',2,'Insert',3,'Select',6,'Update',7,'Delete',8,'Drop','Other') cmmandfrom v$session where username is not null
行转列时
select t.user_name, sum(decode(t.course, '语文', score,null)) as CHINESE, sum(decode(t.course, '数学', score,null)) as MATH, sum(decode(t.course, '英语', score,null)) as ENGLISH from test_tb_grade t group by t.user_name order by t.user_name5.首字母大写
代码
- INITCAP(char)
- select initcap('abcdef') from dyal
- 结果:Abcdef
代码
- LENGTH(char)
- select length('ABCDEF') from dual
- 结果: 5
代码
- Lower(char)
- select lower('ABCDEFG') from dual
- 结果: abcdef
代码
- LPAD(chard,n,char2)
- select LPAD('ABCDEF',10,'123456') from dual
- 结果:1234ABCDEF
代码
- LTRIM(char,set)
- select LTRIM('cdcdcEFG','cd') from dual
- 结果:EFG
代码
- NLS_INITCAP(char)
- NLS_LOWER(char)
- NLS_UPPER(char)
- select NLS_LOWER('AAA') from dual;
- 结果: aaa
代码
- REPLACE(ch1,ch2,ch3) :使用ch3替换ch2,替换后结果放在ch1中
- select replace(EMP_NO,'123','345') from dual
- 结果:xxx1234--- xxx3454
代码
- RPAD(ch1,ch2)
- select rpad('abcd','DEF') form dual
- 结果:abcdDEF
代码
- RTRIM(ch1,set)
- select rtrim('ABCDEF','EF') from dual;
- 结果:ABCD
代码
- SUBSTR(ch1,m,n) //oralce的字符下标从 1 开始
- select substr('abcdef',2,3) from dual
- 结果:bcd
- select substr('山大佛年',2,3) from dual
- 结果:大佛年
代码
- SUBSTR(ch1,m,n) //oralce的字符下标从 1 开始
- select substrb('abcdef',2,3) from dual
- 结果:bcd
- select substrb('山大佛年',2,3) from dual
- 结果:空
代码
- 将ch1中的ch2用ch3 代替
- select translate('ABCDEFGH','DE','MN') from dual
- 结果:ABCMNFGH
代码
- 将字符串全部大写
- select upper('abcdef') from dual
- 结果:ABCDEF
代码
- 将N个月添加到D日期
- select ADD_MONTHS(sysdate,5) from dual;
- 结果:距今后的5个月
代码
- 得到D日期的月份后的最后一天的日期
- select LAST_DAY(sysdate) from dual
- 结果:当月后的最后一天
代码
- 得到两个日期之间的月数
- select MONTHS_BETWEEN(sysdate,sysdate+5) from dual
- 结果:0
代码
- 得到比日期D晚的由ch命名的第一个周日的日期
- select NEXT_DAY (sysdate,'星期一') FROM DUAL;
- select NEXT_DAY (sysdate,1) FROM DUAL;
- 结果:
代码
- select sysdate from dual;
- 结果:系统时间
代码
- 将日期D转换为FMT字符串
- select to_char(sysdate,'yyyy/mm/dd') from dual
- 结果:
代码
- 将字符串char按fmt的格式转换
- select to_date('2010-08-24','yyyy-mm-dd') from dual
- 结果:
代码
- 的到N的绝对值
- select abs(-6) from dual;
- 结果:6
代码
- 得到大于或等于N的最大整数
- select CELL(5.6) from dual
- 结果:6
代码
- 的到 N 的余弦值
- select COS(1) from dual;
- 结果:
代码
- 得到N的正弦值
- 结果:
代码
- 的到N的双曲余弦值
- select COSH(1) from dual
- 结果:
代码
- 的到 N的e的N次幂
- select exp(1) from dual
- 结果:
代码
- 得到小于或等于的最小整数
- select FLOOR(5.6) from dual;
- 结果:5
代码
- 得到N的自然对数
- select LN(1) from dual
- 结果:
代码
- 得到以M为底N的对数
- select log(2,8) from dual;
- 结果:
代码
- 得到M除以N的余数
- select MOD(100,7) from dual
- 结果:2
代码
- 得到M的N次幂
- select POWER(4,3) from dual
- 结果:64
代码
- 得到N舍入到小数点后的M位
- select (78.876532,2) from dual
- 结果:78.88
代码
- select SIGN(99) from dual
- 当N<0 时 返回 -1
- 当N>0 时 返回 1
- 当N=0 时 返回 0
- 结果:
代码
- 得到N的双曲线正弦值
- select SINH(1) from dual
- 结果:
代码
- 得到N的平方根N>0
- select sort(9) from dual
- 结果:3
代码
- 得到N的正切值
- select TAN(0) from dual
- 结果:
代码
- 得到N的双曲线正切值
- select TANH(0) from dual
- 结果:
代码
- 得到在M位截断的N的值
- select TRUNC(7.7788,2) from dual
- 结果:7.77
代码
- 计算满足条件的记录数
- select count(*) from table where col1='AAA'
- 结果:
代码
- 对指定的列求最大值
- select MAX(col1) from table
- 结果:
代码
- 得到指定的列值的最小值
- select min(col) from dual
- 结果:
代码
- 求平均值
- select avg(col1) from table
- 结果:
代码
- 计算列的总和
- select sum(col1) from dual
- 结果:
代码
- 将字符转换为数值
- select TO_NUMBER('999') from dual;
- 结果:999
代码
- 若exp1是null 则返回 exp2 否则返回 exp1
- select name,nvl(to_char(comm),'not application') from scott.emp
- 结果:
50. NVL2 (expr1, expr2, expr3)
expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型
51. NULLIF (expr1, expr2)
相等返回NULL,不等返回expr1
52.有关行号的分析函数:
rank()
dense_rank() row_number()