SQL 7 计算字段 - 3. 数据处理函数

来源:互联网 发布:360管家mac版 编辑:程序博客网 时间:2024/06/07 03:43

  像普通编程语言一样,SQL也支持使用函数处理数据,函数使用若干字段名或者常量值作为参数;参数的数量上不固定的,有函数的参数为空,甚至有的函数的参数个数可变里几乎所有函数都有返回值,返回值即为函数的数据处理结果。

  其实在前面的章节中我们已经用到函数来,最典型的就是“聚合函数”,“SQL”中海油其他类型的函数,比如进行数值处理的数学函数、进行日期处理的的日期函数、进行字符串处理的字符串函数等。我们来演示几个函数使用的典型场景。

  主流的数据库心痛都提供了计算字符串长度的函数,在MySQL、Oracle、DB2中这个函数名称为LENGTH而在MS SQL Server中这个函数的名称则为LEN。这个函数接受一个字符串类型的字段值作为参数,返回值为这个字符串的长度。

 

下面的SQL语句计算每一个名称不为空的员工的名字及名字的长度。

MySQL、Oracle

SELECT FName, LENGTH(FName) AS namelength FROM T_Employee WHERE FName IS NOT NULL

+--------+------------+
| Fname  | namelength |
+--------+------------+
| Tom    |          3 |
| Jerry  |          5 |
| Potter |          6 |
| Jane   |          4 |
| Tina   |          4 |
| Smith  |          5 |
| Timmy  |          5 |
| Stone  |          5 |
+--------+------------+

 

主流的数据库系统都提供了取得祖父传的字串的函数,在MySQL、MS SQL Server中这个函数名称为SUBSTRING,而在Oracle中这个函数名称为SUBSTR。

这个函数接受3个参数,第一个参数为要去的主字符串,第二个参数为字串的其实位置(从1开始计数),第三个参数为子串的长度。下面的SQL语句取得每一个名称不为空的员工的名字,以及名字中从第二个字符开始、长度值为3的子串:

SELECT FName, SUBSTRING(FName, 2, 3) FROM T_Employee

 

+--------+------------------------+
| FName  | SUBSTRING(FName, 2, 3) |
+--------+------------------------+
| Tom    | om                     |
| Jerry  | err                    |
| Potter | ott                    |
| Jane   | ane                    |
| Tina   | ina                    |
| Smith  | mit                    |
| NULL   | NULL                   |
| Timmy  | imm                    |
| Stone  | ton                    |
+--------+------------------------+

原创粉丝点击