本章介绍什么是函数,DBMS 支持何种函数,以及如何使用这些函数。
本章中还讲解为什么 SQL 函数的使用可能会带来问题。
8.1 函数
函数一般是在数据上执行的,它给数据的转换和处理提供了方便。
函数不仅可以作为 SELECT 语句的列表成分,还可以作为 SELECT 语句的其他成分(如在 WHERE 子句中使用,在其他 SQL 语句中使用等)
8.1.1 文本处理函数
上一章我们使用 RTRIM() 函数来取出列值右边的空格。
例 1,使用 UPPER() 函数将文本转换为大写:
SELECT vend_name, UPPER(vend_name) AS vend_name_upcase
FROM Vednors
ORDER BY vend_name;
常用的文本处理函数
SOUNDEX 是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。
SOUNDEX 考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较。
8.1.2 日期和时间处理函数
日期和时间采用相应的数据类型存储在表中,以特殊的格式存储,以便能快速和有效地排序或过滤,并且节省物理存储空间。
一般,应用程序不使用用来存储日期和时间的格式,因此日期和时间函数总是被用来读取、统计和处理这些值。
例 2,Orders 表中包含的订单都带有订单日期:
在 SQL Server 和 Sybase 中
SELECT order_num
FROM Orders
WHERE DATEPART(yy, order_date) = 2004;
在 Access 中
SELECT order_num
FROM Orders
WHERE DATEPART('yyyy', order_date) = 2004;
在 Oracle 中
SELECT order_num
FROM Orders
WHERE to_number(to_char(order_date, 'YY')) = 2004;
8.1.3 数值处理函数
常用数值处理函数