【发布时间】:2020-12-16 01:19:31
【问题描述】:
我正在使用 Oracle 11g。
我有两张桌子:
我想显示 student_name、课程、费用和一个带有折扣费用的列,如果是“BIT”或“MIT”,费用将减少 10%。
我想出了以下查询,但它给出了一个错误:
ORA-00923:未在预期位置找到 FROM 关键字:
SQL> SELECT Student.student_name, Specification.course, Specification.specification_name, Specification.fee
2 FROM Student
3 JOIN Specification ON Student.specification_id = Specification.specification_id
4 CASE Specification.course WHEN 'BIT' THEN 0.9 * Specification.fee
5 WHEN 'MIT' THEN 0.9 * Specification.fee
6 ELSE Specification.fee END "DISCOUNTED FEE";
【问题讨论】:
-
我不熟悉 Oracle,但对于大多数 SQL,您会在 from 之前添加 case 表达式。
-
我也试过了,还是报同样的错误
-
我对此表示怀疑,请告诉我们
-
另外我强烈建议使用表别名以提高可读性。
-
您使用的是什么版本的 Oracle?执行
SELECT * FROM V$VERSION,然后编辑您的问题并包含此信息以及表的规范(所有字段名称、数据类型和键(主键和外键))。这可能让我们理解为什么一个简单的 CASE 表达式会导致这样的困难。