职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 401|回复: 0

Oracle PL/SQL系列教程之PL/SQL运算符优先级

[复制链接]
千面小魔女 发表于 2018-7-17 20:58 | 显示全部楼层 |阅读模式

PL/SQL运算符优先级

运算符优先级确定表达式分组。这会影响一个表达式是如何进行计算。某些运算符的优先级高于其他运算符; 例如,乘法运算符的优先级比加法运算高:

例如 x =7 + 3* 2; 这里,x被赋值13,而不是20,因为运算符*具有优先级高于+,所以它首先被乘以3 * 2,然后再加上7。

这里,具有最高优先级的操作出现在表的顶部,那些具有最低出现在底部。在表达式,更高的优先级运算符将首先计算。

运算符
操作符
**
指数运算
+, -
加法,取反
*, /
乘法,除法
+, -, ||
加,减,并置
=, <, >, <=, >=, <>, !=, ~=, ^=,
IS NULL, LIKE, BETWEEN, IN
比较
NOT
逻辑否定
AND
关联
OR
包含
示例:
试试下面的例子来理解运算符优先级在PL/ SQL中的使用:

DECLARE   a number(2) := 20;   b number(2) := 10;   c number(2) := 15;   d number(2) := 5;   e number(2) ;BEGIN   e := (a + b) * c / d;      -- ( 30 * 15 ) / 5   dbms_output.put_line('Value of (a + b) * c / d is : '|| e );   e := ((a + b) * c) / d;   -- (30 * 15 ) / 5   dbms_output.put_line('Value of ((a + b) * c) / d is  : ' ||  e );   e := (a + b) * (c / d);   -- (30) * (15/5)   dbms_output.put_line('Value of (a + b) * (c / d) is  : '||  e );   e := a + (b * c) / d;     --  20 + (150/5)   dbms_output.put_line('Value of a + (b * c) / d is  : ' ||  e );END;/
当上述代码在SQL提示符执行时,它产生了以下结果:
Value of (a + b) * c / d is : 90Value of ((a + b) * c) / d is  : 90Value of (a + b) * (c / d) is  : 90Value of a + (b * c) / d is  : 50PL/SQL procedure successfully completed.
本文转自:http://www.eduforth.com.cn/knowledge/knowledge298.html

您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-3-29 09:57 , Processed in 0.114332 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表