【发布时间】:2017-03-31 00:31:44
【问题描述】:
我是 PL/SQL 的新手,需要弄清楚以下问题。如果有人可以帮助我进行查询,我将不胜感激,以便我了解问题的构成。
我想创建一个新的匿名 PL/SQL 块,它将显示公司中的员工总数,他们的最高、最低和平均工资以及他们的平均工资四舍五入到整数。
这是正确的吗?
SELECT ROUND(MAX(salary),0) 'Maximum',
ROUND(MIN(salary),0) 'Minimum',
ROUND(SUM(salary),0) 'Sum',
ROUND(AVG(salary),0) 'Average'
FROM employees;
PL/SQL 让我困惑
【问题讨论】:
-
这看起来几乎是正确的。列名可以不加引号,也可以加双引号,例如“Sum”。最好不要使用 Sum 这样的保留关键字作为列名;最好使用 Max_salary、Min_salary、Total_salary 和 Average_salary 等列名。不需要
round()的第二个参数 0,因为 0 无论如何都是默认值;您可以简化为round(min(salary))(并且,如果所有薪水一开始都是整数,那么只有平均值需要四舍五入 - 其他人已经是整数了)。总的来说它看起来不错。这和 PL/SQL 有什么关系? -
不正确。您的查询中没有任何内容返回数字或员工。此外,如果您运行该代码,它可能会因为别名周围的单引号而引发错误。
标签: sql database oracle plsql oracle11g