数据处理函数
1,计算字符串长度
主流数据库系统都提供了计算字符串长度的函数,在MYSQL、Oracle、DB2中这个函数
名称为LENGTH,而在MSSQLServer中这个函数的名称则为LEN。这个函数接受一个字符串类
型的字段值做为参数,返回值为这个字符串的长度。下面的SQL语句计算每一个名称不为空
的员工的名字以及名字的长度:
MYSQL、Oracle、DB2:
SELECT FName, LENGTH(FName) AS namelength FROM T_Employee
WHERE FName IS NOT NULL
MSSQLServer:
SELECT FName, LEN(FName) AS namelength FROM T_Employee
WHERE FName IS NOT NULL
FName namelength
Tom 3
Jerry 5
Jane 4
Tina 4
Smith 5
John 4
Kerry 5
Stone 5
2,获取字符串的子串
主流系统都提供了取得字符串的子串的函数,在MYSQL、MSSQLServer中这个函数名称
为SUBSTRING,而在Oracle、DB2这个函数名称为SUBSTR。这个函数接受三个参数,第一个
参数为要取的主字符串,第二个参数为字串的起始位置(从1开始计数),第三个参数为字串
的长度。下面的SQL语句取得每一个名称不为空的员工的名字以及名字中从第二个字符开始、
长度为3的字串:
MYSQL、MSSQLServer:
SELECT FName, SUBSTRING(FName,2,3) FROM T_Employee
WHERE FName IS NOT NULL
Oracle、DB2:
SELECT FName, SUBSTR(FName,2,3) FROM T_Employee
WHERE FName IS NOT NULL
执行完毕我们就能在输出结果中看到下面的执行结果:
FName namelength
Tom om
Jerry er
Jane an
Tina in
Smith mi
John oh
Kerry er
Stone to
3,函数嵌套使用
多个函数还可以嵌套使用。主流系统都提供了计算正弦函数值的函数SIN和计算绝对值
的函数ABS,它们都接受一个数值类型的参数。下面的SQL语句取得每个员工的姓名、年龄、
年龄的正弦函数值以及年龄的正弦函数值的绝对值,其中计算“年龄的正弦函数值的绝对值”
时就要使用嵌套函数,SQL语句如下:
SELECT FName,FAge, SIN(FAge) , ABS(SIN(FAge)) FROM T_Employee
执行完毕我们就能在输出结果中看到下面的执行结果:
FName FAge Tom 25 -0.13235175009777303 0.13235175009777303
Jerry 28 0.27090578830786904 0.27090578830786904
Jane 23 -0.8462204041751706 0.8462204041751706
Tina 25 -0.13235175009777303 0.13235175009777303
Smith 28 0.27090578830786904 0.27090578830786904
<NULL> 27 0.956375928404503 0.956375928404503
John 23 -0.8462204041751706 0.8462204041751706
Kerry 28 0.27090578830786904 0.27090578830786904
Stone 22 -0.008851309290403876 0.008851309290403876