8.1函数
与其他大多数计算机语言一样,SQL支持利用函数来处理数据。函数一般是在数据上执行的,它给数据的转换和处理提供了方便。
可移植(portable):所编写的代码可以在多个系统上运行。
8.2使用函数
大多数SQL实现支持一下支持的函数:
1.用于处理文本串(如删除或填充值,转换值为大写或小写)的文本函数。
2.用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。
3.用于处理日期和时间值并从这些值中提取特定成分(例如,返回两个日期之差,检查日期有效性等)的日期和时间函数。
4.返回DBMS正使用的特殊信息(如返回用户登录信息)的系统函数。
8.2.1文本处理函数
SELECT vend_name,UPPER(vend_name) AS vend_name_upcaseFROM VendorsORDER BY vend_name;
UPPER( )将文本转换为大写,因此本例子中每个供应商都列出两次,第一次为Vendors表中存储的值,第二次作为列vend_name_upcase转换为大写。
SOUNDEX是一个将任何文本转换为描述其语音便是的字母数字模式的算法。SOUNDEX考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较。
SELECT cust_name,cust_contactFROM CustomersWHERE SOUNDEX(cust_contact) = SOUNDEX('Michael Green');
可以匹配到发音类似于Michael Green的联系名。
8.2.2 日期和时间处理函数
SELECT order_numFORM OrdersWHERE to_number(to_char(order_date,'YY')) = 2004;
检索2004年的所有订单。
SELECT order_numFORM OrdersWHERE order_date BETWEEN to_date('01-JAN-2004')AND to_date('31-DEC-2004');
Oracle日期 DD-MMM-YYYY格式的日期一般能被Oracle正确处理,即使没有用to_date( )明确地转换为日期也是如此,但为了保险起见,应该总是使用该函数。