oracle实用知识(二)

来源:互联网 发布:sql server怎么导入表 编辑:程序博客网 时间:2024/06/08 05:42

今天复习一下oracle中的一些单行函数。

----UPPER、LOWER

顾名思义,这两个函数的作用是将字符串中的英文按照大写或者小写的方式显示,

例如:SELECT  UPPER(LASTNAME),LASTNAME FROM EMPLOYEES;

    SELECT  LOWER(LASTNAME),LASTNAME FROM EMPLOYEES;

----SUBSTR

这个函数有两个重载的方法:

1.SUBSTR(LASTNAME,3) : 从第3个位置一直截取到字符串的末端   / /  注意 oracle的其实位置为1,而不是0.

2.SUBSTR(LASTNAME,3,2) : 从第3个位置开始截取2个字符串长度的字符串

3.SUBSTR(LASTNAME,-3) : 这个要特别说明一下,当第二个参数为负数时,截取的位置是从后往前数的第三个,但是截取的方向还是向后,

   也就是说这个的意思就是截取倒数3个字符。

----INSTR

这个函数类似于java中的indexof(),有两个参数,例如INSTR(a,b) 意思为在字符串 a 中 是否存在 b  如果存在,则返回真值,反之则返回假值。

----LENGTH

这是计算字符串中字符的函数 例如:SELECT  LENGTH('博客') FROM DUAL; 

如果这里变成了LENGTHB 则返回的是字节数。

----TRIM

这是去掉两边空格或者指定元素的函数。直接上例子:

SELECT  TRIM('    ASDASD    ') FROM DUAL; 这个会输出ASDASD,其两边的空格都会消失,

SELECT TRIM ('A'   FROM  'AAADDSVADSAAAA') FROM DUAL; 这个会删除掉后面这个字符串的两边的A,注意是两边的A,而非所有的A,

会输出“DDSVADS”。

----LPAD、RPAD

这个函数有三个参数:第二个参数用来指定第一个参数显示出来的长度,如果长度大于第二个参数,无论是LPAD还是RPAD都会从左向右截取第二个

参数长度的字符串并显示,如果长度小于第二个参数,则会在左 / 右用第三个参数补齐。有点蒙了,一个例子简单明了:

ID 中有100,111,121,131

SELECT  LPAD(ID,2,0) FROM EMPLOYEES;  会输出 10,11,12,13

SELECT  RPAD(ID,2,0) FROM EMPLOYEES;  会输出 10,11,12,13

SELECT  LPAD(ID,6,0) FROM EMPLOYEES;  会输出 000100,000111,000121,000131

SELECT  RPAD(ID,6,0) FROM EMPLOYEES;  会输出 100000,111000,121000,131000

----ROUND 

四舍五入,这个不用多说了,SELECT  ROUND(12.545,2) FROM DUAL; 12.55

SELECT ROUND(19.545,-1) FROM DUAL; 20.

----TRUNC

截取数字,与ROUND类似,只不过不舍入,直接截取。

----MOD

取余,SELECT MOD(15,2) FROM DUAL; 1。

----SYSDATE

获取当前系统的时间。

----TO_CHAR

将当前数据转换为字符类型,TO_CHAR(A,B); 按照B的模板将A转化。

----TO_DATE

将当前数据转化为日期类型。类似于TO_CHAR。

----TO_NUMBER

将当前数据转化为数字类型。类似于TO_CHAR。

----NVL

如果第一个参数为空,会返回第二个参数,如果不为空,则会返回第一个参数,要注意,这两个参数的类型必须相同。

----NVL2

有点相当于NVL的重载,如果不为空,返回第二个参数,如果为空,返回第三个参数。

----条件分支语句

CASE语句

SELECT LAST_NAME,CASE  SALARY

WHEN SALARY>20 THEN SALARY*1.1

WHEN SALARY>50 THEN SALARY*1.2

END AS SALARY

FROM EMPLOYEES;

东西有点杂乱,感觉不太好记,要多看几遍才行!


原创粉丝点击