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 用作组分隔符。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值