与SQL 语句不一样,SQL 函数不是可移植的。为特定SQL 实现编写的代码在其他实现中可能不正常。因为各个DBMS厂商对函数的实现有很大的区别。
常用函数 大多数SQL 实现支持以下类型的函数:
- 用于处理文本字符串(如删除或填充值,转换值为大写或小写)的文本函数。
- 用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。
- 用于处理日期和时间值并从这些值中提取特定成分(如返回两个日期之差,检查日期有效性)的日期和时间函数。
- 返回DBMS 正使用的特殊信息(如返回用户登录信息)的系统函数
1. 文本处理函数
SELECT vend_name, UPPER(vend_name) AS vend_name_upcaseFROM VendorsORDER BY vend_name;
2. 日期和时间处理函数
日期和时间采用相应的数据类型存储在表中,每种DBMS 都有自己的特 殊形式。日期和时间值以特殊的格式存储,以便能快速和有效地排序或 过滤,并且节省物理存储空间。不同SQL对于日期和时间的处理很不一致,可移植性最差。
使用DATEPART()函数 SQL Server 中检索2012 年的所有订单,可如下:
SELECT order_numFROM OrdersWHERE DATEPART(yy, order_date) = 2012;
注意:DBMS 提供的功能远不止简单的日期成分提取。大多数DBMS 具有比较日期、执行基于日期的运算、选择日期格式等的函数。但是,可以看到,不同DBMS 的日期时间处理函数可能不同。关于具体DBMS 支持的日期时间处理函数,请参阅相应的文档。
3. 数值处理函数
数值处理函数仅处理数值数据。这些函数一般主要用于代数、三角或几何运算,因此不像字符串或日期-时间处理函数使用那么频繁。相对来说在主要DBMS 的函数中,数值函数是最一致、最统一的函数。