返回数说广场
0
下面是PRODUCTS表的结构:
Name Null? Type
PROD_ID NOT NULL NUMBER(6)
PROD_NAME NOT NULL VARCHAR2(50)
PROD_DESC NOT NULL VARCHAR2(4000)
PROD_CATEGORY NOT NULL VARCHAR2(40)
PROD_CATEGORY_ID NOT NULL NUMBER
SUPPLIER_ID NOT NULL NUMBER(6)
PROD_STATUS NOT NULL VARCHAR2(20)
PROD_LIST_PRICE NOT NULL NUMBER(8,2)
PROD_MIN_PROCE NOT NULL NUMBER(8,2)
使用PRODUCTS表,执行下面的查询来获取当产品打折25%之后价格低于$10的产品的名称,当前价格,打折后的价格。
查询会报错,错误的原因是什么?
SQL>SELECT prod_name, prod_list_price,
prod_list_price - (prod_list_price * .25) "DISCOUNTED_PRICE"
FROM products
WHERE discounted_price < 10;
WHERE子句中的列别名应该使用表达式替换。
SELECT prod_name, prod_list_price,
prod_list_price - (prod_list_price * .25) "DISCOUNTED_PRICE"
FROM products
WHERE discounted_price < 10;
ORA-00904: "DISCOUNTED_PRICE": invalid identifier
SELECT * FROM student WHERE (条件)
执行顺序,先执行FROM 子句,然后执行WHERE 子句,最后执行SELECT 所以Select 子句后的别名,在where条件中不能使用
在Oracle中,可以在SELECT语句中使用列的别名,但是这个别名只能在ORDER BY子句中使用,不能在WHERE子句中使用。如果你想在WHERE子句中使用别名,你需要重写查询,或者使用子查询
0
0 74
分享
评论
热门数说


