【发布时间】:2018-01-13 14:35:12
【问题描述】:
我是 SQL 新手,我要完成以下问题:
编写 SQL 代码询问一个数字并显示所有获得收入的员工 比提供的数量更多的佣金。提示应该说“请给钱”。
所以我的第一句话是:
SELECT E.ENAME, E.COMM
FROM EMP E
WHERE e.comm > &MoneyPlease;
但这只能工作一次,因为一旦你给了 MoneyPlease 的值,它就会被保留,如果我输入文本,它就会出错。
所以我试图让它在每次运行时提示输入一个值,将其转换为数字,如果输入了非数字参数则调用。
以下是我目前所做的,我尝试过移动组件,例如将选择组合到一行,将表单组合到一行。但无论我做出什么改变,我都会不断出错,而且我还不够熟悉,不知道哪些错误意味着我至少朝着正确的方向前进。感觉更像是我现在只是在黑暗中刺伤。
任何方向都将不胜感激。
Accept MoneyPlease prompt 'Money Please '
Column MoneyPlease NEW_Value MoneyPlease
select nvl(numeric('&MoneyPlease'), '*Unknown*') MoneyPlease
from Dual,
Prompt 'Is this correct?'
Prompt 'Enter to continue, CTRL + C to esc'
Pause
SELECT E.ENAME, E.COMM
FROM EMP E
WHERE e.comm > &MoneyPlease;
【问题讨论】:
-
这是家庭作业——如果你不知道这个级别,你应该问你的教授。
-
我正在检查考试样题
-
第一:您使用的是哪个 RDBMS?您已经标记了 oracle 和 sql-server。不可能两者兼而有之。请修复您的标签
-
下一步:您应该在应用层验证您的输入,只有在正确时才将其发送到数据库级别
-
@POD -- 这是我的观点 -- 这是一个示例问题 -- 如果您不知道如何回答,请咨询您的教授。我们不知道,我们没有上课。所写的问题毫无意义。
标签: sql oracle11g oracle-sqldeveloper sqlplus