三、 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相加也为空的情况.