现在的位置: 首页 > 综合 > 正文

Oracle学习<二>

2012年09月18日 ⁄ 综合 ⁄ 共 1719字 ⁄ 字号 评论关闭

三、 sql function 单行函数

 

     -| lower(),

       把括号中的字段中的项目全部转换成小写

       如select lower(ename) from emp;

   

       select ename from emp where lower(ename) like '_a%';

       等同于select ename from emp where ename like '_a%' or ename like '_A%';

 

     -| upper();

      功能与lower()全部相反

 

     -| substr();

       select substr(ename,2,3) from emp;从第二字符截,一共截三个字符.

 

     -| chr()

       select chr(65) from dual 结果为:A

 

     -|ascii();

       select ascii('a') from dual 结果为:65

 

     -| round()四舍五入

        select round(23.652,1) from dual; 结果为: 23.7
        select round(23.652,-1) from dual; 20

        第二个参数为小数点后第几位为有效数字,没参数默认为0.

 

      -| to_char  将一个列中的内容转换成一种自定义格式

        select to_char(sal,'$99_999_999') from emp;
        select to_char(sal,'L99_999_999') from emp;人民币符号,L:代表本地符号

        

        这个需要掌握牢:
        select BIRTHDATE from emp;
        显示为:
        BIRTHDATE
        ----------------
        17-12月-80
        ----------------

        改为:
        select to_char(birthdate,'YYYY-MM-DD HH:MI:SS') from emp;

 

        显示:

        BIRTHDATE
        -------------------
        1980-12-17 12:00:00
        -------------------
        当前时间
        select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; //也可以改为:HH12
        TO_CHAR(SYSDATE,'YY
        -------------------
        2007-02-25 14:46:14

 

 

      

      -|to_date函数:
        select ename,birthdate from emp where birthdate > to_date('1981-2-20 12:34:56','YYYY-MM-DD HH24:MI:SS');
        如果直接写 birthdate>'1981-2-20 12:34:56'会出现格式不匹配,因为表中的格式为: DD-MM月-YY.

        select sal from emp where sal>888.88 无错.但
        select sal from emp where sal>$1,250,00;
        会出现无效字符错误.
        改为:
        select sal from emp where sal>to_number('$1.250.00','$9,999,99');

       

 

 

      -| nvl函数;把特定的列如果其为空值则改为特定数字

        把空值改为0
        select ename,sal*12+nvl(comm,0) from emp;
        这样可以防止comm为空时,sal*12相加也为空的情况.

抱歉!评论已关闭.