标签:
-- lower() 将字符串转成小写select lower(‘HELLO WORLD‘) from dual; -- upper() 将字符串转大写select upper(‘hello world‘) from dual; -- initcap() 将字符串首字母大写select initcap(‘hEllo woRld‘) from dual;-- substr(a,b) 从a中,第b位开始取,取右边所有的字符select substr(‘Hello World‘,4) from dual;-- substr(a,b,c) 从a中,第b位开始取,取c位select substr(‘Hello World‘,4,4) from dual; -- lpad/rpad(a,n,b) 在a左/右填充b,直至长度为nselect lpad(‘Hello‘,8,‘*‘) ,rpad(‘Hello‘,8,‘*‘) from dual; -- trim() 去掉前后指定的字符,也可以滤空操作select trim(‘H‘ from ‘Hello WorldH‘) from dual;select trim(‘ Hello WorldH ‘) from dual;
-- replace() 替换指定位置的字符select replace(‘Hello World‘,‘l‘,‘*‘) from dual;-- instr() 在母串中查找子串,找到返回下标(从1开始),否则返回0select instr(‘Hello World‘,‘ll‘) from dual; -- length() 字符数, lengthb() 字节数select length(‘Hello World‘), lengthb(‘Hello World‘) from dual-- 字段连接。使用||符号select ‘aa‘ || ‘bb‘ from dual; -- concat(a,b) 拼接a和bselect concat(‘a‘,‘b‘)||‘转23‘ demo from dual;
-- round() 四舍五入,第一个参数为要进行四舍五入的数,第二个参数为保留的位数,大于0的为小数点后,小于0的为小数点前的select round(12.345, 2),round(12.345, 1), round(12.345, 0),round(12.345, -1), round(12.345, -2) from dual;-- trunc() 截断,第一个参数为要进行截断的数,第二个参数为保留的位数,大于0的为小数点后,小于0的为小数点前的select trunc(12.345, 2),trunc(12.345, 1), trunc(12.345, 0), trunc(12.345, -1), trunc(12.345, -2) from dual;-- mod() 取模操作select mod(10,3) from dual;-- months_between(maxDate,minDate) 表示两个日期的月份之差select months_between(sysdate,sysdate - 300) from dual; -- add_months(date,n) 表示给指定的日期加n个月数select add_months(sysdate,3) from dual; -- next_day(date) 表示以当前时间为基准,下一个"目标日"的日期select next_day(sysdate,‘星期二‘) from dual; -- last_day(date) 计算当前日期所在月份的最后一天select last_day(sysdate) from dual; -- round(date,[param])对日期进行四舍五入,默认四舍五入到天select round(sysdate,‘year‘) from dual; -- trunc(date,[param])表示对日期进行截取select trunc(sysdate) from dual;-- to_char(字符串/列,格式字符串) 将日期或者是数字变为字符串显示, 9 代表一位数字select to_char(sysdate,‘yyyy-mm-dd‘),to_char(sysdate,‘yyyy‘) year, to_char(sysdate,‘mm‘) month, to_char(sysdate,‘dd‘) day from dual;select to_char(sysdate,‘fmyyyy-mm-dd hh24:mi:ss‘) day from dual;select to_char(10000,‘L999,999,999,999,999‘) from dual;-- to_date(字符串,格式字符串) 将字符串变为date数据显示select to_date(‘2016-3-18‘,‘yyyy-mm-dd‘) from dual;-- to_number(字符串) 将字符串变为数字显示select to_number(‘1‘) + to_number(‘2‘) from dual;-- nvl(a,b) 当a表达式为空(null,‘‘)时,返回b表达式select nvl(‘‘,200) from dual; -- nvl2(a,b,c) 如果a表达式的值不为空,显示表达式b的值,否则(为空)显示表达式c的值select nvl2(‘‘,‘b‘,‘c‘) from dual; -- nullif(a,b) 如果前后两个表达式的内容相等的,那就返回空,否则,返回第一个表达式的值select nullif(5,5) from dual; -- coalesce(a,b,c...) 用来匹配多个字段的值,如果表达式1的值为空,显示表达式2的值,如果表达式2也为空,显示表达式3的值,依次类推select coalesce(‘‘,null,‘‘,‘a‘) from dual; -- decode(被对比参数,对比参数1,返回值1,对比参数2,返回值2,....) 函数非常类似于程序中的if…else…语句select decode(1,0,‘0-0‘,1,‘1-1‘,2,‘2-2‘) from dual;--简单Case函数 CASE sex WHEN ‘1‘ THEN ‘男‘WHEN ‘2‘ THEN ‘女‘ELSE ‘其他‘ END --Case搜索函数 CASEWHEN sex = ‘1‘ THEN ‘男‘WHEN sex = ‘2‘ THEN ‘女‘ELSE ‘其他‘ ENDSELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男生,2位女生*/ ELSE NULL END) 男生数, COUNT (CASE WHEN sex = 2 THEN 1 ELSE NULL END) 女生数 FROM students GROUP BY grade;SELECT s.name FROM student sWHERE (CASE WHEN s.class = ‘001‘ THEN 1 WHEN s.class = ‘002‘ THEN 1 ELSE 0 END) = 1标签:
原文地址:http://www.cnblogs.com/sunnybug/p/5295486.html