OCP-1Z0-051 第52题 列别名

在Oracle SQL查询中,试图使用列别名`DISCOUNTED_PRICE`在WHERE子句过滤条件时导致错误。正确做法是将表达式`prod_list_price - (prod_list_price * .25)`直接用于WHERE子句,而不是使用别名。选项C是正确答案,因为列别名不能在定义它们的原始查询的WHERE子句中直接使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、原题
View the Exhibit and examine the structure of the PRODUCTS table.

Using the PRODUCTS table, you issue the following query to generate the names, current list price,and discounted list price for all those products whose list price falls below $10 after a discount of 25% is applied on it.
SQL>SELECT prod_name, prod_list_price,
           prod_list_price - (prod_list_price * .25) "DISCOUNTED_PRICE"
FROM products
WHERE discounted_price < 10;
The query generates an error.What is the reason for the error?
A. The parenthesis should be added to enclose the entire expression.
B. The double quotation marks should be removed from the column alias.
C. The column alias should be replaced with the expression in the WHERE clause.
D. The column alias should be put in uppercase and enclosed with in double quotation marks in the WHERE clause.

答案:C
二、题目翻译
下面是PRODUCTS表的结构:
使用PRODUCTS表,执行下面的查询来获取当产品打折25%之后价格低于$10的产品的名称,当前价格,打折后的价格。
查询会报错,错误的原因是什么?
A. 括号应该把整个表达式都括起来。
B. 双引号应该从列别名中移除。
C. WHERE子句中的列别名应该使用表达式替换。
D. WHERE子句中的列别名应该大写并且使用双引号引起来。
三、题目解析
WHERE子句中不能使用列别名,所以要用表达式替换掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值