当前位置:数据库 > Oracle >>

Oracle DB嵌套函数

Oracle DB嵌套函数
 
嵌套函数
• 单行函数可以嵌套到任意层。
• 嵌套函数的计算顺序是从最内层到最外层。
 
 
单行函数可以嵌套到任意深度。嵌套函数的计算顺序是从最内层到最外层。下面的一些示例显示这类函数的灵活性。
 
嵌套函数:示例1
hr@TEST0924> SELECT last_name, UPPER(CONCAT(SUBSTR (LAST_NAME, 1, 8), '_US')) FROM employees WHERE department_id = 60; 

LAST_NAME                 UPPER(CONCAT(SUBSTR(LAST_NAME,1,8),
------------------------- -----------------------------------
Hunold                    HUNOLD_US
Ernst                     ERNST_US
Austin                    AUSTIN_US
Pataballa                 PATABALL_US
Lorentz                   LORENTZ_US

 

 
示例显示部门60 中的雇员的姓氏。该SQL 语句的计算涉及以下三个步骤:
1.内部函数检索姓氏的前8 个字符。
Result1 = SUBSTR (LAST_NAME, 1, 8) 
2.外层函数将结果与_US连接在一起。
Result2 = CONCAT(Result1, '_US') 
3.最外层函数将结果转换为大写。
因为没有给出列别名,所以整个表达式就成为列标题。
示例:
显示距聘用日期六个月后的下一个星期五的日期。按聘用日期对结果排列。
hr@TEST0924> SELECT TO_CHAR(NEXT_DAY(ADD_MONTHS (hire_date, 6), 'FRIDAY'), 'fmDay, Month ddth, YYYY') "Next 6 Month Review" FROM employees ORDER BY hire_date; 

Next 6 Month Review
-------------------------------------------------------------------------------------
Friday, July 20th, 2001
Friday, December 13th, 2002
Friday, December 13th, 2002

 

 
嵌套函数:示例2
hr@TEST0924> SELECT TO_CHAR(ROUND((salary/7), 2),'99G999D99', 'NLS_NUMERIC_CHARACTERS = '',.'' ') "Formatted Salary" FROM employees; 

Formatted
----------
    371,43
    371,43
    628,57
  1.857,14

 

以上结果按照丹麦表示法显示,即逗号用作小数点,句点用作千位分隔符。
hr@TEST0924> SELECT TO_CHAR(ROUND((salary/7), 2),'99G999D99') "Formatted Salary" FROM employees; 

Formatted
----------
    371.43
    371.43
    628.57
  1,857.14

 

示例显示雇员薪金除以7 并舍入到2 位小数的结果。然后
首先,执行内部ROUND函数将薪金除以7 之后的值舍入到2 位小数。然后,使用TO_CHAR函数设置ROUND函数结果的格式。
注:在TO_CHAR函数参数中指定的D 和G 是数字格式元素。D 在指定的位置返回小数点字符。G 用作组分隔符。
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,